Lightsail 컨테이너 서비스를 위한 Docker 이미지 구축 및 테스트 - Amazon Lightsail

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Lightsail 컨테이너 서비스를 위한 Docker 이미지 구축 및 테스트

Docker를 사용하면 컨테이너를 기반으로 하는 분산 애플리케이션을 구축, 실행, 테스트 및 배포할 수 있습니다. Amazon Lightsail 컨테이너 서비스는 배포에서 Docker 컨테이너 이미지를 사용하여 컨테이너를 시작합니다.

이 가이드에서는 Dockerfile을 사용하여 로컬 시스템에 컨테이너 이미지를 생성하는 방법을 안내합니다. 이미지가 생성되면 이미지를 Lightsail 컨테이너 서비스에 푸시하여 배포할 수 있습니다.

이 가이드의 절차를 완료하려면 기본적으로 Docker가 무엇이고 어떻게 작동하는지를 이해해야 합니다. Docker에 대한 자세한 내용은 Docker란 무엇인가?Docker 개요를 참조하세요.

목차

1단계: 필수 구성 요소 완성

시작하기 전에 컨테이너를 생성하는 데 필요한 소프트웨어를 설치한 다음 Lightsail 컨테이너 서비스에 푸시해야 합니다. 예를 들어, Lightsail 컨테이너 서비스와 함께 사용할 수 있는 컨테이너 이미지를 생성하고 구축하려면 Docker를 설치하고 사용해야 합니다. 자세한 내용은 Amazon Lightsail 컨테이너 서비스용 컨테이너 이미지를 관리하기 위한 소프트웨어 설치를 참조하세요.

2단계: Dockerfile 생성 및 컨테이너 이미지 구축

Dockerfile을 생성하고 Dockerfile에서 mystaticwebsite Docker 컨테이너 이미지를 구축하려면 다음 절차를 완료하세요. 컨테이너 이미지는 Ubuntu의 Apache 웹 서버에서 호스팅되는 간단한 정적 웹 사이트에 사용됩니다.

  1. 로컬 시스템에 Dockerfile을 저장할 mystaticwebsite 폴더를 생성합니다.

  2. 방금 만든 폴더에 Dockerfile을 생성합니다.

    Dockerfile은 .TXT와 같은 파일 확장자를 사용하지 않습니다. 전체 파일 이름은 Dockerfile입니다.

  3. 컨테이너 이미지를 구성하는 방법에 따라 다음 코드 블록 중 하나를 복사하여 Dockerfile에 붙여넣습니다.

    • 간단한 정적 웹 사이트 컨테이너 이미지를 Hello World 메시지와 함께 생성하려면 다음 코드 블록을 복사하여 Dockerfile에 붙여넣습니다. 이 코드 샘플은 Ubuntu 18.04 이미지를 사용합니다. RUN 지침은 패키지 캐시를 업데이트하고 Apache를 설치 및 구성한 후 Hello World 메시지를 웹 서버의 문서 루트로 인쇄합니다. EXPOSE 지침은 컨테이너에 포트 80을 노출하고 CMD 지침은 웹 서버를 시작합니다.

      FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Open port 80 EXPOSE 80 # Start Apache service CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
    • 정적 웹 사이트 컨테이너 이미지에 사용자 고유의 HTML 파일 집합을 사용하려면 Dockerfile을 저장하는 폴더와 동일한 폴더에 html 폴더를 생성합니다. 그런 다음 HTML 파일을 해당 폴더에 넣습니다.

      HTML 파일이 html 폴더에 있으면 다음 코드 블록을 복사하여 Dockerfile에 붙여넣습니다. 이 코드 샘플은 Ubuntu 18.04 이미지를 사용합니다. RUN 지침은 패키지 캐시를 업데이트하고 Apache를 설치 및 구성합니다. COPY 지침은 html 폴더의 내용을 웹 서버의 문서 루트에 복사합니다. EXPOSE 지침은 컨테이너에 포트 80을 노출하고 CMD 지침은 웹 서버를 시작합니다.

      FROM ubuntu:18.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Copy html directory files COPY html /var/www/html/ # Open port 80 EXPOSE 80 CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
  4. 명령 프롬프트 또는 터미널 창을 열고 Dockerfile을 저장할 폴더로 디렉터리를 변경합니다.

  5. 다음 명령을 입력하여 폴더의 Dockerfile을 사용하여 컨테이너 이미지를 구축합니다. 이 명령은 이름이 mystaticwebsite인 새 Docker 컨테이너 이미지를 구축합니다.

    docker build -t mystaticwebsite .

    이미지가 성공적으로 구축되었음을 확인하는 메시지가 표시됩니다.

  6. 다음 명령을 입력하여 로컬 시스템의 컨테이너 이미지를 확인합니다.

    docker images --filter reference=mystaticwebsite

    다음 예와 유사한 결과가 나타나 생성된 새 컨테이너 이미지를 보여줍니다.

    Docker 이미지 명령의 결과

    새로 구축한 컨테이너 이미지를 사용하여 테스트하고 로컬 시스템에서 새 컨테이너를 실행할 준비를 마쳤습니다. 이 가이드의 다음 3단계: 새 컨테이너 이미지 실행 섹션을 이어서 진행하세요.

3단계: 새 컨테이너 이미지 실행

생성한 새 컨테이너 이미지를 실행하려면 다음 단계를 완료하세요.

  1. 명령 프롬프트 또는 터미널 창에서 다음 명령을 입력하여 가이드의 이전 2단계: Dockerfile 생성 및 컨테이너 이미지 구축 섹션에서 구축한 컨테이너 이미지를 실행합니다. -p 8080:80 옵션은 컨테이너의 노출된 포트 80을 로컬 시스템의 포트 8080에 매핑합니다. -d 옵션은 컨테이너가 분리 모드에서 실행되도록 지정합니다.

    docker container run -d -p 8080:80 --name mystaticwebsite mystaticwebsite:latest
  2. 다음 명령을 입력하여 실행 중인 컨테이너를 확인합니다.

    docker container ls -a

    다음 예와 유사한 결과가 나타나 실행 중인 새 컨테이너를 보여줍니다.

    Docker 컨테이너 명령의 결과
  3. 컨테이너가 설정되고 실행 중인지 확인하려면 새 브라우저 창을 열고 http://localhost:8080을 찾습니다. 다음 예와 비슷한 메시지가 나타나는 것을 볼 수 있습니다. 이렇게 하면 컨테이너가 로컬 시스템에서 설정되어 실행 중인지 확인할 수 있습니다.

    Docker 컨테이너에서 실행되는 정적 웹 사이트

    새로 구축한 컨테이너 이미지를 Lightsail 컨테이너 서비스에 배포할 수 있도록 Lightsail 계정으로 푸시할 준비를 마쳤습니다. 자세한 내용은 Amazon Lightsail 컨테이너 서비스에서 컨테이너 이미지 푸싱 및 관리를 참조하세요.

(선택 사항) 4단계: 로컬 시스템에서 실행 중인 컨테이너 정리

Lightsail 컨테이너 서비스에 푸시할 수 있는 컨테이너 이미지를 생성했으니, 가이드의 절차에 따른 결과로 로컬 시스템에서 실행 중인 컨테이너를 정리해야 합니다.

로컬 시스템에서 실행 중인 컨테이너를 정리하려면 다음 단계를 완료하세요.

  1. 다음 명령을 실행하여 로컬 시스템에서 실행 중인 컨테이너를 확인합니다.

    docker container ls -a

    다음과 유사한 결과가 나타나 로컬 시스템에서 실행 중인 컨테이너의 이름을 나열합니다.

    Docker 컨테이너 명령의 결과
  2. 다음 명령을 실행하여 가이드의 앞부분에서 생성하여 실행 중인 컨테이너를 제거합니다. 이렇게 하면 컨테이너가 강제로 중지되고 영구적으로 삭제됩니다.

    docker container rm <ContainerName> --force

    명령에서 < ContainerName >를 중지하려는 컨테이너의 이름으로 바꾸고 삭제합니다.

    예제

    docker container rm mystaticwebsite --force

    이제 가이드를 따라 생성한 컨테이너가 삭제됩니다.

컨테이너 이미지를 생성한 후의 다음 단계

컨테이너 이미지를 생성한 후 배포할 준비가 되면 해당 이미지를 Lightsail 컨테이너 서비스에 푸시합니다. 자세한 내용은 Lightsail 컨테이너 서비스 이미지 관리를 참조하십시오.