도커 컴포즈는 시스템(컨테이너들과 주변환경)을 한번에 실행하고 종료와 폐기할 수 있게하는 소프트웨어 이다.
워드프레스 시스템을 구축한다고 해보자. 워드프레스 구축을 위해서는 워드프레스, MySQL 컨테이너를 개별로 생성하고 이들간 연동을 위한 네트워크, 볼륨 등을 설정해야한다. 뒷정리 때는 ps 명령어로 일일이 확인하며 지워야한다.
시스템 구축을 위한 일련의 작업을 파일에 명시하여 쉽고 빠르게 재사용하면 좋지 않을까?
도커 컴포즈 는 시스템과 주변환경을 한번에 구축하고 종료, 폐기까지 한번에 하도록 도와주는 소프트웨어 이다.
도커 컴포즈 는 시스템 구축에 필요한 설정이 기재된 YAML 포맷 의 정의 파일 을 활용한다.
시스템 구축에 필요한 설정은 YAML 포맷의 정의 파일에 저장하여 사용 한다. 참고로 작성 내용은 도커 명령어와 비슷하지만 도커 명령은 아니다.
Tip. 도커 컴포즈와 Dockerfile 스크립트의 차이
도커 컴포즈와 Dockerfile 스크립트 모두 텍스트로 작성된 파일을 실행하여 어떤 액션을 취하는 작업이다. 하지만 이미지를 build 하기 위해 명시했던 Dockerfile 과는 달리 도커 컴포즈와 YAML 포맷의 정의 파일은 컨테이너와 주변환경의 생성/종료/삭제 에서 사용된다.
도커 컴포즈 는 도커 엔진과 별개로 설치가 필요 하다. 단, Python 기반 소프트웨어로 python3(런타임)와 python3-pip가 우선적으로 설치되어있어야한다.
도커 데스크톱을 사용하는 경우 에는 도커 컴포즈가 함께 설치되기 때문에 따로 설치 필요가 없다. 하지만 리눅스 운영체제의 경우, 도커 엔진과 별개로 설치가 필요하다.
도커 컴포즈는 파이썬으로 작성된 소프트웨어이므로, 우선 python3와 python3-pip 설치가 필요하다. Python3 설치 시에는 apt 명령을, 도커 컴포즈는 pip3 명령을 사용한다.
sudo apt install -y python3 python3-pip
sudo pip3 install docker-compose
도커 컴포즈가 정상적으로 설치되었는지 확인할 때는 docker-compose --version
을 사용한다.
root@LAPTOP-3H85AI8N:/# docker-compose --version
Docker Compose version v2.17.2
제대로 설치가 되었으면 바로 실행 가능한 상태이다.
도커 컴포즈로 시스템을 다룰 때 정의 파일(YAML 파일)을 활용 한다고 했었다. 도커 컴포즈를 사용할 때도 Dockerfile 스크립트로 이미지를 빌드할 때처럼 호스트 내에 폴더를 만들고 이 안에 정의 파일을 배치 한다. 일반적으로 정의 파일은 docker-compose.yml 이라는 이름으로 생성 한다. 만약 컨테이너에 필요한 이미지 파일이나 HTML 파일 등은 정의 파일이 있는 폴더에 함께 두면 된다.
파일을 준비한 후, 도커 컴포즈를 실행하면 도커 컴포즈는 docker-compose.yml 파일에 작성된 내용을 도커 엔진 명령으로 입력하게된다.