docker-compose 파일은 version으로 시작된다. 이를 통해서 이 docker-compose의 실행 버전을 확인 할 수 있다.
docker-compose가 실행하는 각 컨테이너는 services 블록에 정의한다. 여기에서 Docker 이미지, Port, 볼륨과 같은 컨테이너를 실행하기 위한 정보들을 설정할 수 있다.
volumes 을 ./html:/user/share/nginx/html로 설정했는데, 로컬 PC의 html 디렉토리를 컨테이너의 /usr/share/nginx/html로 덮어쓴다. 테스트를 위해서 ./html 디렉토리 밑에 index.html 파일을 만들었다.
$ mkdir ./html
index.html의 파일 내용이다.
<h1>Hello World!</h1>
networks로 하나 이상의 네트워크를 설정할 수 있다. 여기에서는 bridge 타입의 srv_net를 정의했다. 그리고 "web" service가 srv_net를 이용하도록 했다. networks를 설정하지 않을 경우 default 네트워크가 설정된다.
docker-compose 실행
docker-compose.yml 파일이 준비되면 Docker compose를 실행해서, 컨테이너들 실행할 수 있다. docker-compose up 명령을 실행하면, nginx 이미지를 다운로드해서 새로운 컨테이너를 실행한다. -d 옵션으로 백그라운드 모드로 실행 할 수 있다.
Name Command State Ports
---------------------------------------------------------------------
nginx_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8080->80/tcp,:::8080->80/tcp
소개
Docker를 이용하면 애플리케이션 개발과 배포를 단순화 할 수 있다. Docker는 어떻게 보면 가상 머신과 유사하지만 프로세스 기반으로 더 가볍고 더 빠르게 사용 할 수 있다.
하지만 여러 서비스로 구성된 애플리케이션의 경우 여러 컨테이너를 실행하고, 통신하고 종료하도록 관리하는 것은 복잡한 작업이 될 수 있다. Docker compose를 이용하면 YAML 파일을 이용해서 다중 컨테이너 환경을 쉽게 실행할 수 있다.
이 문서는 docker-compose의 설치와 실행을 취한 최소한의 정보만 포함하고 있다.
사전 조건
이 문서의 내용은 아래와 같은 환경을 기반으로 하고 있다.
Ubuntu 리눅스 20.04 이상이 설치된 로컬 PC 혹은 가상머신
Ubuntu 리눅스에서 docker가 설치되어 있다. How to install and use docker on ubuntu 20-04 문서를 참고해서 설치하자.
Docker compose 설치
docker-compose 실행파일을 다운로드 한다.
docker-compose 파일에 실행권한을 준다.
설치 성공했는지 확인해 보자.
docker-compose.yml 설정 파일
작업용 디렉토리를 하나 만들어서 거기에 작업을 진행한다.
docker-compose의 기본 설정파일은 docker-compose.yml 이다. 먼저 NginX 웹 서버를 실행하는 간단한 docker-compose.yml 을 만들어보자.
docker-compose 파일은 version으로 시작된다. 이를 통해서 이 docker-compose의 실행 버전을 확인 할 수 있다.
docker-compose가 실행하는 각 컨테이너는 services 블록에 정의한다. 여기에서 Docker 이미지, Port, 볼륨과 같은 컨테이너를 실행하기 위한 정보들을 설정할 수 있다.
volumes 을 ./html:/user/share/nginx/html로 설정했는데, 로컬 PC의 html 디렉토리를 컨테이너의 /usr/share/nginx/html로 덮어쓴다. 테스트를 위해서 ./html 디렉토리 밑에 index.html 파일을 만들었다.
index.html의 파일 내용이다.
networks로 하나 이상의 네트워크를 설정할 수 있다. 여기에서는 bridge 타입의 srv_net를 정의했다. 그리고 "web" service가 srv_net를 이용하도록 했다. networks를 설정하지 않을 경우 default 네트워크가 설정된다.
docker-compose 실행
docker-compose.yml 파일이 준비되면 Docker compose를 실행해서, 컨테이너들 실행할 수 있다. docker-compose up 명령을 실행하면, nginx 이미지를 다운로드해서 새로운 컨테이너를 실행한다. -d 옵션으로 백그라운드 모드로 실행 할 수 있다.
nginx 이미지가 없을 경우 아래와 같이 이미지를 다운로드한다.
Docker compose가 성공적으로 실행됐는지 확인해보자.
명령을 실행하면, 실행중인 모든 컨테이너들의 정보가 출력된다.
이제 웹 브라우저 혹은 curl로 테스트해보자.
모든 테스트가 긑났다면 "down"명령으로 컨테이너들을 삭제한다.
docker compose 기본 명령
docker compose up: 컨테이너를 새로 시작한다.
docker compose down: 컨테이너를 삭제한다.
docker compose stop: 컨테이너의 실행을 잠시 중단한다.
docker compose start: (stop 으로)중단된 컨테이너를 다시 시작한다.
docker compose log: compose 로그를 확인한다.
docker compose ps : 컨테이너 실행 상태를 확인한다.
Recent Posts
Archive Posts
Tags