도커 컴포즈는 docker-compose 명령어로 실행 하며, 자주 쓰는 커맨드는 up/down/stop 이 있다.
도커 컴포즈는 docker-compose 명령어를 사용한다. 자주 사용하는 커맨드는 up과 down 두 가지지만 가끔 stop도 사용 한다. up 커맨드 는 컴포즈 파일에 정의된 시스템을 생성 한다. -d, --scale
등의 옵션 사용이 가능하다. down 커맨드 는 생성된 컨테이너와 네트워크를 종료하고 삭제 한다. 이때 볼륨과 이미지는 삭제되지 않으며, 같이 삭제하려면 --rmi
, -v, --volumes
옵션을 사용할 수 있다.
docker-compose -f 정의_파일_경로 up 옵션 # up 커맨드
docker-compose -f 정의_파일_경로 down 옵션 # down 커맨드
docker-compose -f 정의_파일_경로 stop 옵션 # stop 커맨드
[도커 컴포즈 파일 작성] 에서 만든 컴포즈 파일로 도커 컴포즈를 실행해보자.
앞에서 /home/jpark/com_folder에 docker-compose.yml 파일을 만들었다.
# docker-compose.yml 작성
version: "3"
services:
mysql000ex11:
image: mysql:5.7
networks:
- wordpress000net1
volumes:
- mysql000vol11:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: myrootpass
MYSQL_DATABASE: wordpress000db
MYSQL_USER: wordpress000kun
MYSQL_PASSWORD: wkunpass
wordpress000ex12:
depends_on:
- mysql000ex11
image: wordpress
networks:
- wordpress000net1
volumes:
- wordpress000vol12:/var/www/html
ports:
- 8081:80
restart: always
environment:
WORDPRESS_DB_HOST: mysql000ex11
WORDPRESS_DB_NAME: wordpress000db
WORDPRESS_DB_USER: wordpress000kun
WORDPRESS_DB_PASSWORD: wkunpass
networks:
wordpress000net1:
volumes:
mysql000vol11:
wordpress000vol12:
root@LAPTOP-3H85AI8N:/home/jpark/com_folder# docker-compose -f docker-compose.yml up -d
[+] Running 2/1
✔ Network com_folder_wordpress000net1 Created 0.9s[+] Running 3/3
✔ Network com_folder_wordpress000net1 Created 0.9s
...
docker-compose up 명령으로 컴포즈 파일을 실행하면 정의된 네트워크, 볼륨, 컨테이너가 생성된다.
웹 브라우저에서 http://localhost:8081 로 접속해보자. 다음 화면이 나타나면 제대로 시스템 실행이 된 것이다.
root@LAPTOP-3H85AI8N:/home/jpark/com_folder# docker-compose -f docker-compose.yml down -v
[+] Running 1/1
[+] Running 1/2om_folder-wordpress000ex12-1 Removed 2.5s
[+] Running 1/2om_folder-wordpress000ex12-1 Removed 2.5s
...
docker-compose down 명령으로 컴포즈 파일을 실행하면 정의된 네트워크, 컨테이너를 종료 및 삭제한다. -v
옵션을 사용하면 볼륨도 같이 제거된다. 삭제 후 docker ps -a
, docker network ls
, docker volume ls
명령어로 잘 삭제되었는지 확인하자.
Tip. scale 옵션
도커 컴포즈로 실행한 컨테이너의 이름은 임의로 결정 된다. 생성 규칙은 폴더이름_컨테이너이름_번호 이다. 예를들어 위 실습에서는 comfolder mysql000ex11_1 로 생성된다. 따라서 도커 엔진을 통해 컨테이너를 다룰때는docker ps
로 이름을 확인해야한다. 만약 같은 컨테이너를 여러개 만들고 싶으면--scale
옵션을 사용한다. 단, 여러 세트를 실행은 쿠버네티스를 사용하는 것이 편리하므로 자주 사용하진 않는다.
docker-compose -f 정의_파일_경로 up --scale 컨테이너_이름=수량