ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker를 사용하여 간단한 웹 애플리케이션을 만드는 단계별 실습
    Cloud/Container 2023. 2. 12. 23:03

    사전 요구 사항

    • Docker가 설치되어 있고 실행 중인 컴퓨터

    단계 1: 새 디렉터리 생성

    웹 애플리케이션을 위한 새 디렉터리를 만들고 터미널에서 해당 디렉터리로 이동합니다.

    mkdir my-web-app
    cd my-web-app

    단계 2: 웹 페이지 만들기

    다음 내용을 포함하는 index.html 파일을 만듭니다:

    <!DOCTYPE html>
    <html>
    <head>
      <title>My Web App</title>
    </head>
    <body>
      <h1>Hello, World!</h1>
    </body>
    </html>

    단계 3: Dockerfile 만들기

    Dockerfile 이라는 이름의 새 파일을 만들고 다음 내용을 입력합니다:

    # 공식 Nginx 런타임을 부모 이미지로 사용
    FROM nginx:alpine
    
    # 웹 페이지를 컨테이너로 복사합니다.
    COPY index.html /usr/share/nginx/html

    단계 4: Docker 이미지 빌드

    터미널에서 Dockerfile이 있는 디렉터리로 이동하고 다음 명령어를 실행하여 Docker 이미지를 빌드합니다:

    docker build -t my-web-app .
     

    -t 플래그는 이미지를 이름으로 태그하기 위해 사용되며, 이 경우 my-web-app로 태그됩니다.

    단계 5: Docker 컨테이너 실행

    다음 명령을 실행하여 Docker 컨테이너를 시작합니다:

    docker run -d -p 80:80 --name my-web-app my-web-app

    -d 플래그는 컨테이너를 백그라운드 모드로 실행하고, -p 플래그는 컨테이너의 80번 포트를 호스트 머신의 80번 포트에 매핑합니다.

    단계 6: 웹 애플리케이션에 액세스하기

    웹 브라우저를 열고 http://localhost로 이동합니다. 페이지에 "Hello, World!" 메시지가 표시됩니다.

    이것으로 간단한 웹 애플리케이션을 Docker를 사용하여 만들었습니다.

    애플리케이션에 더 많은 파일을 추가하고 Dockerfile을 수정하여 필요에 맞게 변경할 수 있습니다.

    단계 7: 컨테이너 멈추기 및 삭제하기

    Docker 컨테이너를 종료하고 삭제하려면 다음 명령어를 실행합니다:

    docker stop $(docker ps -aqf "name=my-web-app") && docker rm $(docker ps -aqf "name=my-web-app")

    이 명령어는 다음과 같은 작업을 수행합니다:

    • docker ps -aqf "name=my-web-app": my-web-app 이름을 갖는 모든 컨테이너의 ID를 반환합니다.
    • docker stop $(docker ps -aqf "name=my-web-app"): 해당 컨테이너를 모두 중지합니다.
    • docker rm $(docker ps -aqf "name=my-web-app"): 해당 컨테이너를 모두 삭제합니다.

    이제 컨테이너가 중지되고 삭제되었습니다. 이제 다시 시작하려면 단계 5에서 설명한 명령을 실행하면 됩니다.

     

    --------------------------------------------------------------------------------------------------------

    다음은 컨테이너에 들어간 index.html 파일을 수정하고 v2 버전의 이미지를 빌드하는 예제입니다.

    단계 8: 웹 페이지 수정

    index.html 파일을 다음 내용으로 수정합니다:

    <!DOCTYPE html>
    <html>
    <head>
      <title>My Web App v2</title>
    </head>
    <body>
      <h1>Hello, World!</h1>
      <p>This is version 2 of my web app.</p>
    </body>
    </html>

    단계 9: Dockerfile 수정

    Dockerfile 파일을 다음과 같이 수정하여 새로운 이미지를 빌드할 수 있습니다.

    아래와 같은 내용의 이전과 동일한 도커 파일로 빌드를 다시 한번 수행합니다.

    # Use an official Nginx runtime as a parent image
    FROM nginx:alpine
    
    # Copy the updated web page to the container
    COPY index.html /usr/share/nginx/html

    단계 10: Docker 이미지 빌드

    터미널에서 Dockerfile이 있는 디렉터리로 이동하고 다음 명령어를 실행하여 새 Docker 이미지를 빌드합니다:

    docker build -t my-web-app:v2 .

    -t 플래그를 사용하여 이미지 이름을 my-web-app 대신 my-web-app:v2로 태그했습니다.

    단계 11: Docker 컨테이너 실행

    이제 v2 이미지를 사용하여 컨테이너를 실행합니다.

    docker run -d -p 80:80 --name my-web-app-v2 my-web-app:v2

    단계 12: 웹 애플리케이션에 액세스하기

    새로운 버전의 웹 애플리케이션에 액세스하기 위해 웹 브라우저를 열고 http://localhost로 이동합니다. 새로운 버전의 "Hello, World!" 메시지와 추가된 텍스트 "This is version 2 of my web app."가 표시됩니다.

    단계 13: 컨테이너 멈추기 및 삭제하기

    이전 단계와 동일한 명령을 사용하여 v2 컨테이너를 중지하고 삭제합니다.

    docker stop my-web-app-v2 && docker rm my-web-app-v2

    이제 컨테이너가 중지되고 삭제되었습니다.

     

    # 자기 주도 과제

    이번에는 This is version 1 of my web app. 라고 출력되는 my-web-app 이미지의 v1 버전을 만들어서 실행 시키고 브라우저에서 메시지를 확인하세요.

Designed by Tistory.