티스토리 뷰

docker-compose 버전 확인

docker-compose --version


docker-compose 기본 명령

서브명령 설명
up 컨테이너 생성/시작
ps 컨테이너 목록 표시
logs 컨테이너 로그 출력
run 컨테이너 실행
start 컨테이너 시작
stop 컨테이너 정지
restart 컨테이너 재시작
pause 컨테이너 일시정지
unpause 컨테이너 재개
port 공개 포트번호 표시
config 구성확인
kill 실행중인 컨테이너 강제 정지
rm 컨테이너 삭제
down 리소스  삭제

 

docker-compose.yml을 기본으로 컨테이너 생성 및 시작

current directory 이외의 장소에 docker-compose.yml을 놓아 둔 경우는 -f 옵션으로 파일 경로를 지정

docker-compse -f ./sample/docker-compose.yml up

 

특정 컨테이너 조작

서브 명령 다음에 컨테이너명을 지정하면 해당 컨테이너만을 조작할 수 있음

  • webserver 라는 이름의 컨테이너만 정지
docker-compose stop webserver

 

여러 컨테이너 생성[up]

docker-compose up 명령

docker-compose.yml을 바탕으로 여러 개의 컨테이너를 생성하여 시작할 때 사용

docker-compose up [옵션] [서비스명] .

지정할 수 있는 주요 옵션

옵션 설명
-d 백그라운드에서 실행한다.
--force-recreate 컨테이너를 지우고 새로 만든다.
--no-deps 링크 서비스를 시작하지 않는다.
--build 이미지를 빌드한다.
--no-build 이미지를 빌드하지 않는다.
-t, --timeout 컨터이너의 타임아웃을 초로 지정[기본 10초]한다.
--scale SERVICE=서비스수 서비스 수를 지정한다.

 

여러 컨테이너의 일괄 생성 및 시작

docker-compose up

 

여러 컨테이너를 백그라운드로 시작

docker-compose up -d

 

docker 이미지 빌드

Dockerfile을 수정 했을 때 build 명령을 사용하여 도커 이미지를 새로 만들어야 함
up 명령에 다음 과 같이 --build 옵션을 넣으면 알아서 이미지를 새로 만들고 서비스를 재시작 함

docker-compose up --build

 

docker-compose up --scale 명령

컨테이너를 생성할 개수를 지정할 때 --scale 옵션을 사용

docker-compose up --scale [서비스명=수]

 

컨테이너 개수 지정

docker-compose.yml에 server_a server_b라는 2개의 정의가 있고
server_a의 컨테이너를 10개, server_b 컨테이너를 20개 시작하고 싶을 때

docker-compose up --scale server_a=10 --scale server_b=20

 

여러 컨테이너 확인[ps / logs]

여러 컨테이너의 상태 확인

docker-compose ps

 

컨테이너 ID확인

docker-compose ps -q

 

docker 명령을 사용한 컨테이너 확인

docker container ls

 

docker 명령을 사용한 로그 확인

docker-compose logs

 

컨테이너에서 명령 실행[run]
docker-compose로 시작한 컨테이너의 임의의 명령을 실행

docker-compose up 명령을 사용하여 시작한 server_a라는 이름의 컨테이너에서 /bin/bash를 실행하는 예

docker-compose run server_a /bin/bash

 

여러 컨테이너 시작/정지/재시작/일시정지/일시정지 재개[start / stop / restart / pause / unpause]

여러 컨테이너 일괄 시작

docker-compose start

여러 컨테이너의 일괄 정지

docker-compose stop

여러 컨테이너의 일괄 재시작

docker-compose restart

여러 컨테이너의 일시정지

docker-compose pause

여러 컨테이너의 일시정지 재개

docker-compose unpause

 

서비스의 구성확인[port / config]

서비스 공개용 포트 확인

docker-compose port [옵션] <서비스명> <프라이빗 포트 번호>

지정할 수 있는 주요 옵션

옵션 설명
--protocol=port 프로토콜 tcp 또는 udp
--index=index 컨테이너의 인덱스 수

 

공개 포트 확인

webserver 80 private port의 공개 포트 확인

docker-compose port webserver 80

 

구성확인

docker-compose config

 

여러컨테이너 강제 정지 / 삭제[kill / rm]

https://docs.docker.com/compose/reference

docker-coompose kill 명령을 사용해서 컨테이너에게 시그널을 송신할 수 있음
시그널이란 프로세스 간의 연락을 주고 받기 위한 장치로 Linux 커널에 내장되어 있음

 

컨테이너에 시그널 송신

docker-compose kill -s SIGINT
* 옵션을 지정하지 않고 docker-compose kill을 실행하면 SIGKILL이 송신됨

 

여러 컨테이너 일괄 삭제

docker-compose rm

 

Linux의 시그널

inux에서는 프로그램을 실행할 때 파일에 쓰여 있는 프로그램을 읽어 들여 메모리상에 배치함
이 메모리상에 배치된 프로그램이 실행되면 '프로세스'가 됨
그리고 이 프로세스에 대해 명령을 송신할 수 있는데, 이 명령을 시그널이라고 함
시그널은 POSIX.1-1990 라는 규격으로 정의되어 있음

 

 docker-compose 주요 서브명령

지원하는 시그널 종류는 kill -l 명령으로 확인

시그널 설명
SIGHUP 프로그램 재시작
SIGINT 키보드로 인터럽트 CTRL+C 로 송신 할 수 있음
SIGQUIT 키보드에 의한 중지 CTRL+\ 로 송신 할 수 있음
SIGTERM 프로세스 정상 종료
SIGKILL 프로세스 강제 종료
SIGSTOP 프로세스 일시 정지

 

여러 리소스의 일괄 삭제[down]

docker-compose.yml 정의 파일을 바탕으로 docker-compose up 명령으로 생성한 컨테이너 이미지를 모아서 삭제할 때 사용
실행 중인 컨테이너를 정지시키고, docker 이미지, 네트워크, 데이터 볼륨을 일괄 적으로 삭제함

 

docker-compose down 명령

docker-compose down [옵션]

지정 할 수 있는 주요 옵션

시그널 설명
--rmi all 모든 이미지 삭제
--rmi local 커스텀 태그가 없는 이미지만 삭제
-v, --volumes Compose 정의 파일의 데이터 볼륨을 삭제

 

이미지 삭제시 볼륨까지 삭제

이미지를 삭제 하면서 연결된 볼륨까지 삭제

docker-compose down --volume

 

여러 이미지 삭제

docker-compose.yml 정의 파일에서 지정한 컨테이너를 정지시키고 모든 이미지를 삭제

docker-compose down --rmi all

 

참고

freedeveloper.tistory.com/183?category=808752

'DevOps > Docker-Compose' 카테고리의 다른 글

1. docker-compose설정 가이드  (0) 2021.04.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함