[Docker] 14. Docker Compose 명령어

Date:     Updated:

카테고리:

태그:

[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 카테고리 내 다른 글 보러가기

댓글 남기기