(사용되지 않음) Azure Container Service에 사용할 컨테이너 이미지 만들기

Azure Kubernetes Service 사용하는 이 자습서의 업데이트된 버전은 자습서: AKS(Azure Kubernetes Service 애플리케이션 준비)를 참조하세요.

경고

ACS(Azure Container Service)는 더 이상 사용되지 않습니다. 새로운 특징 또는 기능이 ACS에 추가되지 않을 예정입니다. 모든 API, 포털 환경, CLI 명령 및 설명서가 더 이상 사용되지 않는다고 표시됩니다.

2017년에 Kubernetes 관리, 배포 및 운영을 간소화하기 위한 AKS(Azure Kubernetes Service)가 도입되었습니다. Kubernetes 오케스트레이터를 사용하는 경우 2020년 1월 31일까지 AKS로 마이그레이션하세요. 시작하려면 Azure Kubernetes Service로 마이그레이션을 참조하세요.

자세한 내용은 Azure.com의 Azure Container Service 사용 중단 알림을 참조하세요.

7개 중 1단계인 이 자습서에서는 Kubernetes에서 사용할 수 있도록 다중 컨테이너 애플리케이션을 준비하는 과정입니다. 완료되는 단계는 다음과 같습니다.

  • GitHub에서 애플리케이션 소스 복제
  • 애플리케이션 원본에서 컨테이너 이미지 만들기
  • 로컬 Docker 환경에서 애플리케이션 테스트

완료되면 다음 애플리케이션을 로컬 개발 환경에서 액세스할 수 있습니다.

Image of Kubernetes cluster on Azure

이후 자습서에서는 컨테이너 이미지를 Azure Container Registry에 업로드한 다음 Azure에서 호스트되는 Kubernetes 클러스터에서 실행합니다.

시작하기 전에

이 자습서에서는 컨테이너, 컨테이너 이미지 및 기본 Docker 명령과 같은 핵심 Docker 개념에 대한 기본적인 지식이 있다고 가정합니다. 필요한 경우 컨테이너 기본 사항에 대한 입문서는 Docker 시작을 참조하세요.

이 자습서를 완료하려면 Docker 개발 환경이 필요합니다. Docker는 모든 Mac, Windows 또는 Linux 시스템에서 쉽게 Docker를 구성하는 패키지를 제공합니다.

Azure Cloud Shell에는 이 자습서의 모든 단계를 완료하는 데 필요한 Docker 구성 요소가 포함되어 있지 않습니다. 따라서 전체 Docker 개발 환경을 사용하는 것이 좋습니다.

애플리케이션 코드 가져오기

이 자습서에서 사용되는 애플리케이션 예제는 기본 투표 앱입니다. 애플리케이션은 프런트 엔드 웹 구성 요소 및 백 엔드 Redis 인스턴스로 구성됩니다. 웹 구성 요소는 사용자 지정 컨테이너 이미지에 패키지됩니다. Redis 인스턴스는 Docker 허브에서 수정되지 않은 이미지를 사용합니다.

Git을 사용하여 개발 환경에 애플리케이션 복사본을 다운로드합니다.

git clone https://github.com/Azure-Samples/azure-voting-app-redis.git

복제된 디렉터리에서 작업할 수 있도록 디렉터리를 변경합니다.

cd azure-voting-app-redis

해당 디렉터리에는 애플리케이션 소스 코드, 미리 만든 Docker Compose 파일 및 Kubernetes 매니페스트 파일이 있습니다. 이러한 파일은 자습서 집합 전체에서 사용됩니다.

컨테이너 이미지 만들기

Docker Compose는 컨테이너 이미지 빌드 및 다중 컨테이너 애플리케이션 배포를 자동화하는 데 사용할 수 있습니다.

docker-compose.yml 파일을 실행하여 컨테이너 이미지를 만들고, Redis 이미지를 다운로드하고, 애플리케이션을 시작합니다.

docker-compose up -d

완료되면 docker images 명령을 사용하여 만든 이미지를 확인합니다.

docker images

세 개의 이미지가 다운로드되거나 생성되었는지 확인합니다. azure-vote-front 이미지는 애플리케이션을 포함하며 nginx-flask 이미지를 기준으로 사용합니다. redis 이미지는 Redis 인스턴스를 시작하는 데 사용됩니다.

REPOSITORY                   TAG        IMAGE ID            CREATED             SIZE
azure-vote-front             latest     9cc914e25834        40 seconds ago      694MB
redis                        latest     a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask   flask      788ca94b2313        9 months ago        694MB

docker ps 명령을 실행하여 실행 중인 컨테이너를 확인합니다.

docker ps

출력:

CONTAINER ID        IMAGE             COMMAND                  CREATED             STATUS              PORTS                           NAMES
82411933e8f9        azure-vote-front  "/usr/bin/supervisord"   57 seconds ago      Up 30 seconds       443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
b68fed4b66b6        redis             "docker-entrypoint..."   57 seconds ago      Up 30 seconds       0.0.0.0:6379->6379/tcp          azure-vote-back

로컬에서 애플리케이션 테스트

https://localhost:8080으로 이동하여 실행 중인 애플리케이션을 확인합니다.

Image of Kubernetes cluster on Azure

리소스 정리

애플리케이션 기능의 유효성을 검사했으므로 실행 중인 컨테이너를 중지하고 제거할 수 있습니다. 컨테이너 이미지를 삭제하지 마세요. 다음 자습서에서 azure-vote-front 이미지를 Azure Container Registry 인스턴스에 업로드합니다.

다음을 실행하여 실행 중인 컨테이너를 중지합니다.

docker-compose stop

다음 명령을 사용하여 중지된 컨테이너와 리소스를 삭제합니다.

docker-compose down

완료되면 Azure Vote 애플리케이션을 구성하는 컨테이너 이미지가 있는 상태가 됩니다.

다음 단계

이 자습서에서는 애플리케이션을 테스트하고 애플리케이션에 대한 컨테이너 이미지를 만들었습니다. 다음 단계가 완료되었습니다.

  • GitHub에서 애플리케이션 소스 복제
  • 애플리케이션 원본에서 컨테이너 이미지 만들기
  • 로컬 Docker 환경에서 애플리케이션 테스트

다음 자습서로 이동하여 Azure Container Registry에 컨테이너 이미지 저장에 대해 알아봅니다.