간단한 docker-compose.yml 파일 준비
이 단계에서는 간단한 docker-compose.yml 파일을 준비합니다. 시작하기 전에 Docker Compose 를 설치해 보겠습니다. LabEx VM 환경에는 Docker Compose 가 미리 설치되어 있지 않으므로 수동으로 설치해야 합니다. Docker Compose 바이너리를 다운로드하고 실행 가능하게 만들 것입니다.
먼저, curl을 사용하여 Docker Compose 바이너리를 다운로드합니다. 설치된 Docker 버전과 호환되는 버전 1.29.2를 다운로드합니다.
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
이 명령어는 공식 GitHub 릴리스 페이지에서 Docker Compose 바이너리를 다운로드하여 /usr/local/bin/docker-compose에 저장합니다. $(uname -s) 및 $(uname -m) 부분은 운영 체제와 아키텍처를 자동으로 감지하여 올바른 바이너리를 다운로드하도록 합니다.
다음으로, 다운로드한 바이너리를 실행 가능하게 만들어야 합니다.
sudo chmod +x /usr/local/bin/docker-compose
이 명령어는 docker-compose 파일에 실행 권한을 추가하여 명령어로 실행할 수 있도록 합니다.
이제 Docker Compose 가 올바르게 설치되었는지 버전을 확인하여 확인해 보겠습니다.
docker-compose --version
docker-compose version 1.29.2, build 5becea4c와 유사한 출력을 볼 수 있습니다. 이는 Docker Compose 가 설치되어 사용할 준비가 되었음을 확인합니다.
이제 ~/project 디렉토리에 간단한 docker-compose.yml 파일을 생성해 보겠습니다. 이 파일은 nginx 이미지를 사용하는 단일 서비스를 정의합니다.
nano ~/project/docker-compose.yml
이 명령어는 nano 텍스트 편집기를 열어 docker-compose.yml 파일을 생성하고 편집합니다. 다음 내용을 편집기에 붙여넣습니다.
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
이 docker-compose.yml 파일을 자세히 살펴보겠습니다.
version: '3.8'은 Docker Compose 파일 형식 버전을 지정합니다.
services:는 실행하려는 서비스 (컨테이너) 를 정의합니다.
web:은 서비스의 이름입니다. 원하는 이름을 선택할 수 있습니다.
image: nginx:latest는 이 서비스에 사용할 Docker 이미지를 지정합니다. 이 경우 공식 Nginx 이미지의 최신 버전을 사용하고 있습니다.
ports:는 호스트 머신과 컨테이너 간의 포트를 매핑합니다. "80:80"은 호스트의 포트 80 을 컨테이너의 포트 80 에 매핑합니다. 즉, 웹 브라우저에서 http://localhost(또는 VM 의 IP 주소) 를 방문하여 컨테이너 내에서 실행 중인 Nginx 웹 서버에 액세스할 수 있습니다.
Ctrl + O를 누르고 Enter를 누른 다음, Ctrl + X를 눌러 파일을 저장하고 편집기를 종료합니다.
이제 Nginx 이미지를 사용하여 웹 서비스를 정의하는 간단한 docker-compose.yml 파일을 성공적으로 생성했습니다. 다음 단계에서는 이 파일을 사용하여 컨테이너를 생성하고 관리합니다.