개발하는 자몽

[Docker] docker compose 명령어 본문

Architecture & Tool/Docker

[Docker] docker compose 명령어

jaamong 2023. 11. 17. 20:05

docker compose up만 계속 써오다가 down 명령어를 알게 되어 정리해 본다.

 

docker compose down

$ docker-compoese down [OPTIONS] [SERVICES]

실행 중인 컨테이너를 멈추고(stop) up 으로 생성된 컨테이너, 네트워크, 볼륨, 이미지들을 제거한다(remove).

컨테이너가 삭제되는 것이므로 당연히 데이터도 다 지워진다. 

 

디폴트로 제거되는 것들

 

  • compose 파일에 정의된 서비스에 대한 컨테이너
  • compose 파일의 network 섹션에 정의된 네트워크
  • 기본 네트워크(사용되는 경우)

단, 외부에서 정의된 네트워크와 볼륨은 절대 제거되지 않는다.

 

docker compose stop/start

컨테이너를 삭제하고 싶지 않고, 멈추고만 싶다면 아래 명령어를 사용하자.

$ docker-compose stop [OPTIONS] [SERVICE...]

 

이렇게 멈춘 컨테이너는 아래 명령을 통해 다시 시작할 수 있다.

$ docker-compose start [SERVICE...]

 

 

docker compose build/up

아래 명령어는 compose 파일에서 필요한 이미지를 찾아서 빌드한다.

$ docker compose build [OPTIONS] [SERVICE...]
  • 서비스가 빌드되고 나면 project_service 형식으로 태그 된다. 
  • compose 파일이 이미지 이름을 지정한다면, 이미지는 해당 이름으로 태그 되며 사전에 변수를 대체한다.
  • 서비스의 Dockerfile이나 빌드 디렉토리의 내용을 변경했다면, 다시 빌드하기 위해 해당 명령어를 실행해야 한다.

 

아래 명령어는 compose 파일에서 서비스에 필요한 모든 컨테이너를 생성한 후 시작한다.

$ docker-compose up [OPTIONS] [SERVICE...]

명령이 종료되면 모든 컨테이너가 멈춘다. up 뒤에 --detach 옵션을 추가하면 컨테이너가 백그라운드에서 시작되므로 실행 상태를 유지할 수 있다. 

에러가 발생하는 경우, 해당 명령의 종료 코드는 1이다. SIGINT(ctrl + c) 나 SIGTERM를 사용하여 중지시키는 경우, 컨테이너는 중지되며, 종료 코드는 0이다.

 

 

모든 이미지를 새로 빌드하여 컨테이너를 생성할 경우 아래 명령어를 사용한다. 보통 소스 코드 수정이 있는 경우, 이미지를 다시 빌드해야 하므로 아래처럼 진행한다.

$ docker-compose up --build  // 도커 이미지 빌드 후 up

 

 

docker docs

down : https://docs.docker.com/engine/reference/commandline/compose_down/

stop : https://docs.docker.com/engine/reference/commandline/compose_stop/

start : https://docs.docker.com/engine/reference/commandline/compose_start/

build : https://docs.docker.com/engine/reference/commandline/compose_build/

up : https://docs.docker.com/engine/reference/commandline/compose_up/

 

 

 

 

 

참고

 

[Docker] docker compose 명령어 정리

오늘은 자주 쓰는 docker-compose 명령어에 대해 간단히 정리해보려고 한다.우선 기본적으로 docker compose 명령어는 docker-compose.yml 파일이 있는 위치에서 실행해야 한다. 만약 실행 위치에 docker-compose.y

velog.io

Comments