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