[Docker] 14. Docker Compose 명령어
📜 Docker Compose의 버전 확인
$ docker-compose --version
📜 Docker Compose의 기본 명령어
| 서브 명령 |
설명 |
| up |
컨테이너 생성/시작 |
| ps |
컨테이너 목록 표시 |
| logs |
컨테이너 로그 출력 |
| run |
컨테이너 실행 |
| start |
컨테이너 시작 |
| stop |
컨테이너 정지 |
| restart |
컨테이너 재시작 |
| pause |
컨테이너 일시 정지 |
| unpause |
컨테이너 재개 |
| port |
공개 포트 번호 표시 |
| config |
구성 확인 |
| kill |
실행 중인 컨테이너 강제 정지 |
| rm |
컨테이너 삭제 |
| down |
리소스 삭제 |
(1) 여러 컨테이너 생성 - up
docker-compose up [옵션] [서비스명.]
| 옵션 |
설명 |
| -d |
백그라운드에서 실행 |
| -f |
docker-compose.yml 파일의 경로를 지정 |
| –no-deps |
컨테이너 목록 표시 |
| –build |
이미지를 빌드함 |
| –no-build |
이미지를 빌드하지 않음 |
| -t, –timeout |
컨테이너의 타임아웃을 초로 지정(기본값: 10s)함 |
| –scale SERVICE=서비스 수 |
서비스 수를 지정함 |
(2) 여러 컨테이너 확인 - ps, logs
# 여러 컨테이너의 상태 확인
$ docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------
sample_server_a_1 nginx -g daemon off; Up 80/tcp
sample_server_b_1 docker-entrypoint.sh redis... Up 6379/tcp
# 여러 컨테이너 ID 확인
$ docker-compose ps -q
f2b9856d412af5b71f9062b8090a671625c4b8d1db547a80b6216ff5290b4b2b
ff362c7e54ccbe37a499c577798e17964bc28c9ee02c163ff8e9a198251c05d0
# docker 명령을 사용한 로그 확인
$ docker-compose logs
Attaching to sample_server_b_1, sample_server_a_1
server_b_1 1: 12 Oct 04:55:40.944 # 0000000000000 Redis is starting c000000000000
server_b_1 1: 12 Oct 04:55:40.944 # Redis version 4.0.2, bits=64, commit=00000000, modified-0, pid=1, just started
~중략~
(3) 컨테이너에서 명령 실행 - run
# server_a라는 컨테이너에서 /bin/bash를 실행
$ docker-compose run server_a /bin/bash
root@a68d85ef8707:/#
(4) 여러 컨테이너 시작/정지/재시작 - start, stop, restart
# 컨테이너 일괄 시작/정지/재시작
$ docker-compose start
Starting server_a ... done
Starting server_b ... done
$ docker-compose stop
Stopping sample_server_b_1 ... done
Stopping sample_server_a_1 ... done
$ docker-compose restart
Restarting sample_server_b_1 ... done
Restarting sample_server_a_1 ... done
# 특정 컨테이너 재시작
$ docker-compose restart server_a
Restarting sample_server_a_1 ... done
(5) 여러 컨테이너 일시 정지/재개 - pause, unpause
# 컨테이너 일괄 일시 정지/재개
$ docker-compose pause
Pausing server_a ... done
Pausing server_b ... done
$ docker-compose unpause
Unpausing sample_server_b_1 ... done
Unpausing sample_server_a_1 ... done
(6) 서비스의 구성 확인 - port, config
docker-compose port [옵션] <서비스명> <프라이빗 포트 번호>
| 서브 명령 |
설명 |
| –protocol=proto |
프로토콜, tcp 또는 udp |
| –index=index |
컨테이너의 인덱스 수 |
# 공개 포트 확인, webserver라는 이름의 서비스의 80번 포트에 할당되어 있는 설정을 확인
$ docker-compose port webserver 80
0.0.0.0:80
# 구성 확인
$ docker-compose config
services:
redis:
image: redis
webserver:
image: nginx
ports:
- 80:80/tcp
version: '3.9'
(7) 여러 컨테이너 강제 정지/삭제 - kill, rm
$ docker-compose kill -s SIGINT
Killing sample_server_b_1 ... done
Killing sample_server_a_1 ... done
$ docker-compose rm
Going to remove sample_server_b_1, sample_server_a_1
Are you sure? [yN] y
Removing sample_server_b_1 ... done
Removing sample_server_a_1 ... done
(8) 여러 리소스의 일괄 삭제 - down
$ docker-compose down [옵션]
| 옵션 |
설명 |
| –rmi all |
모든 이미지 삭제 |
| –rmi local |
커스텀 태그가 없는 이미지만 삭제 |
| -v, –volumes |
Compose 정의 파일의 데이터 볼륨을 삭제 |
$ docker-compose down --rmi all
Stopping sample_webserver_1... done
Stopping sample_redis_1 ... done
Removing sample_webserver_1 ... done
Removing sample_redis_1 ... done
Removing network sample_default
Removing image nginx
Removing image redis
DOCKER 카테고리 내 다른 글 보러가기
댓글 남기기