docker_nginx 기동

(이전에 구성한 VM에서 계속합니다.

외부 호출을 위해 두 Linux 이더넷 어댑터를 모두 엽니다.

터미널 확인 -> ifconfig -a 결과)

소프트웨어별 Docker 이미지는 Docker Hub에서 얻을 수 있습니다.

이 기사에서는 Nginx 컨테이너를 통해 간단한 WEB 구성을 수행합니다.

1. 손쉬운 빌드: Nginx Docker 이미지를 가져와서 시작하세요.

– 다음 명령을 실행하여 nginx 도커 이미지를 가져옵니다.

docker pull nginx

– 명령어 실행 시 아래와 같이 다운로드가 진행됩니다.

(root@localhost sorc)# docker pull nginx

Using default tag: latest
Trying to pull repository docker.io/library/nginx ...
latest: Pulling from docker.io/library/nginx
3f9582a2cbe7: Pull complete
9a8c6f286718: Pull complete
e81b85700bc2: Pull complete
73ae4d451120: Pull complete
6058e3569a68: Pull complete
3a1b8f201356: Pull complete
Digest: sha256:aa0afebbb3cfa473099a62c4b32e9b3fb73ed23f2a75a65ce1d4b4f55a5c2ef2
Status: Downloaded newer image for docker.io/nginx:latest

– 참고 링크는 다음과 같습니다.

https://hub.docker.com/_/nginx

nginx – 공식 이미지 | 도커 허브

빠른 시작 안내서 지원되는 태그 및 해당 Dockerfile 링크 1.23.3, mainline, 1, 1.23, 최신 1.23.3-perl, mainline-perl, 1-perl, 1.23-perl, perl 1.23.3-alpine, mainline-alpine, 1 – 알파인, 1.23-알핀, 알파인 1.23.3-알핀-펄, 메인 라인-알핀-펄, 1-a

hub.docker.com

다음 명령어로 별도의 이미지를 생성하지 않고 바로 시작할 수 있습니다.

1) 포트 8088에 액세스할 때 포트 80에 잠금

2) -d 옵션으로 백그라운드에서 시작 (그렇지 않으면 꼬리 형태로 잡혀서 Ctrl + C 누르는 순간 멈춤)

 docker run -d -p 8088:80 docker.io/nginx


테스트는 다음과 같이 가능합니다.

curl http://localhost:8088



nginx 기본 페이지

2. 설정을 추가하여 빌드: 테스트용 nginx 빌드 및 실행

– 수신된 이미지 파일을 기반으로 추가 설정으로 이미지를 생성합니다.

– 먼저 Dockerfile을 생성할 디렉토리를 생성합니다.

sudo mkdir -p /sorc/nginx/
chown -R master:master /sorc/nginx

– 적절한 디렉토리로 변경하고 vi를 통해 Dockerfile을 빌드합니다.

이번에는 Nginx를 프록시용으로 구성해야 할 뿐만 아니라 이를 사용하여 테스트 페이지를 호출하는 것도 포함됩니다.

따라서 URL 호출을 테스트하기 위해 HTML 파일을 추가하십시오.

이름은 index.html로 생성됩니다.

cd /sorc/nginx/
vi index.html
--아래 내용 붙여 넣기 후 :wq!
<!
DOCTYPE html> <html> <head> <title>Testing Page</title> </head> <body> <h1 style="font-size: 32px;">Testing Page</h1> <p> Welcome to the testing page. Below are two buttons that will perform various tests on the system. Please click on one of the buttons to continue. </p> <form> <button type="button" onclick="confirmHttpTest()">Massive HTTP requests</button> <button type="button" onclick="confirmMemoryTest()">Out Of Memory Test</button> </form> <script> function confirmHttpTest() { var result = confirm("Are you sure you want to perform a Massive HTTP request test?"); if (result) { sendHttpRequests(); } else { alert("HTTP request test cancelled."); } } function confirmMemoryTest() { var result = confirm("Are you sure you want to perform an Out Of Memory test?"); if (result) { alert("Out Of Memory test initiated."); } else { alert("Out Of Memory test cancelled."); } } function sendHttpRequests() { var url = "http://example.com/api"; // Replace with your URL var numRequests = 10; // Replace with the number of requests you want to send var completedRequests = 0; for (var i = 0; i < numRequests; i++) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { completedRequests++; if (completedRequests == numRequests) { alert("HTTP request test completed."); } } }; xhr.send(); } } </script> </body> </html>

이제 Dockerfile을 만듭니다.

Dockerfile에는 다음이 포함됩니다.

– 최신 Nginx 이미지 기반

– 작업 디렉토리: /usr/share/nginx/html(소스 문서의 루트)

– 로컬 index.html 파일을 doc 루트 디렉터리에 복사합니다.

– 8080 포트 외부 개방

– 컨테이너가 시작되면 nginx가 시작됩니다.

# Use an official Nginx runtime as a parent image
FROM nginx:latest

# Set the working directory to the Nginx document root
WORKDIR /usr/share/nginx/html

# Copy the local HTML file to the container
COPY index.html .

# Expose port 8080 to the outside world
EXPOSE 8080

# Start Nginx when the container starts
CMD ("nginx", "-g", "daemon off;")

Dockerfile을 빌드한 후 이미지를 빌드합니다.

– 다음 명령어를 실행하면 빌드가 완료됩니다.

-t 옵션은 태깅을 설정하며, 설정하지 않으면 “최신”으로 설정됩니다.

– Dockerfile의 위치를 ​​찾아 실행합니다.

cd /sorc/nginx/
sudo docker build -t nginx:nginx-testing .

생성된 이미지는 이제 도커 이미지에서 사용할 수 있습니다.


1단계에서 시작한 것과 같은 방식으로 시작할 수 있습니다.

이번에는 –name 옵션을 사용하여 이름을 testing-web으로 지정합니다.

docker run -d -p 8080:80 --name testing-web nginx:nginx-testing

테스트는 다음과 같이 가능합니다.

curl http://localhost:8080

결과는 위에서 설정한 HTML 페이지입니다.



맞춤형 메인 페이지

여기까지 nginx 실행 테스트가 완료되었습니다.

참조. 시작된 도커 컨테이너는 도커 중지입니다.

설정된 도커 이름으로

또는 도커 중지 docker ps로 식별 시작을 중지할 수 있습니다.

참고 2. 일시 중지된 컨테이너가 남아 있는 한 동일한 이미지로 컨테이너를 다시 빌드할 수 없으므로 실행이 일시 중지된 후 docker container prune과 같은 명령을 실행하여 남아 있는 중지 기록을 지우십시오.

(*삭제시 다른 중지된 컨테이너가 없는지 확인)