샘플 Compose 프로젝트 시작
이 단계에서는 샘플 Compose 프로젝트를 시작하는 방법을 배우겠습니다. Docker Compose 를 사용하기 전에 먼저 설치해야 합니다. LabEx VM 환경에는 Docker Compose 가 미리 설치되어 있지 않으므로 먼저 설치합니다.
Docker Compose 바이너리를 다운로드하여 실행 가능하게 만듭니다.
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
설치 후에는 Docker Compose 의 버전을 확인하여 설치를 확인할 수 있습니다.
docker-compose --version
Docker Compose 가 올바르게 설치되었음을 확인하는 버전 정보가 콘솔에 출력되어야 합니다.
이제 간단한 Compose 프로젝트를 만들어 보겠습니다. 프로젝트용 디렉토리를 만들고 그 안에 docker-compose.yml 파일을 만듭니다. 이 파일은 애플리케이션의 서비스를 정의합니다.
먼저 my-compose-app이라는 디렉토리를 만듭니다.
mkdir ~/project/my-compose-app
cd ~/project/my-compose-app
다음으로, nano 편집기를 사용하여 ~/project/my-compose-app 디렉토리에 docker-compose.yml이라는 파일을 만듭니다.
nano docker-compose.yml
다음 내용을 docker-compose.yml 파일에 추가합니다. 이 파일은 nginx 이미지를 사용하는 web이라는 단일 서비스를 정의합니다.
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
파일을 저장하고 nano 편집기를 종료합니다 ( Ctrl + X를 누른 다음 Y를 누르고 Enter를 누릅니다).
서비스를 시작하기 전에 nginx:latest 이미지가 로컬에서 사용 가능한지 확인해야 합니다. docker pull 명령을 사용하여 이미지를 가져올 수 있습니다.
docker pull nginx:latest
이제 docker-compose.yml 파일과 필요한 이미지가 있으므로 docker-compose up 명령을 사용하여 Compose 프로젝트를 시작할 수 있습니다. -d 플래그는 서비스를 분리된 모드 (detached mode) 로 실행합니다. 즉, 백그라운드에서 실행됩니다.
docker-compose up -d
이 명령은 docker-compose.yml 파일에 정의된 대로 web 서비스를 생성하고 시작합니다. 서비스가 생성되고 시작되고 있음을 나타내는 출력이 표시되어야 합니다.
서비스가 실행 중인지 확인하려면 docker ps 명령을 사용하여 실행 중인 컨테이너를 나열할 수 있습니다. web 서비스에 대한 컨테이너가 표시되어야 합니다.
docker ps
또한 웹 브라우저를 열고 LabEx VM 의 IP 주소로 이동하여 Nginx 웹 서버에 액세스할 수 있습니다. 컨테이너의 포트 80 을 호스트의 포트 80 에 매핑했으므로 기본 Nginx 시작 페이지가 표시되어야 합니다.