docker compose up
docker compose up
docker compose up은 서비스의 컨테이너를 만들고 시작하는 명령이에요. Compose로 애플리케이션을 띄울 때 가장 기본적으로 쓰는 명령이에요.
출처: 문서
본문
Pre-start hook failures
pre_start 라이프사이클 훅이 0이 아닌 코드로 종료되면, Compose는 서비스 시작을 멈추고 훅의 컨테이너를 유지해서 문제를 살펴볼 수 있게 해요.
$ docker ps -a --filter label=com.docker.compose.hook=pre_start
$ docker logs <container-id>
다음 compose up에서 같은 서비스의 유지된 훅 컨테이너는 훅이 다시 실행되기 전에 자동으로 정리돼요. compose down도 이를 제거해요.
docker compose up은 서비스에 대한 컨테이너를 빌드·(재)생성·시작하고 연결(attach)해요. 이미 실행 중이 아니라면 연결된 서비스도 함께 시작해요. 각 컨테이너의 출력을 집계해서 보여주는데, --attach로 특정 서비스를 고르고 --no-attach로 일부를 제외할 수 있어요.
명령이 종료되면 모든 컨테이너가 멈춰요. docker compose up --detach는 컨테이너를 백그라운드에서 시작하고 실행 상태로 둬요.
서비스에 기존 컨테이너가 있고 그 구성이나 이미지가 변경됐다면, docker compose up은 컨테이너를 중지하고 재생성해 변경을 반영해요(마운트된 볼륨은 보존). 변경을 반영하지 않으려면 --no-recreate를, 모든 컨테이너를 강제로 중지·재생성하려면 --force-recreate를 사용해요.
오류가 발생하면 이 명령의 종료 코드는 1이고, SIGINT(ctrl + C)나 SIGTERM으로 중단하면 컨테이너가 멈추면서 종료 코드는 0이에요.
지원하는 옵션은 다음과 같아요.
| 옵션 | 기본값 | 설명 |
|---|---|---|
--abort-on-container-exit |
컨테이너 하나라도 멈추면 모든 컨테이너를 중지해요. -d와 함께 쓸 수 없어요 | |
--abort-on-container-failure |
컨테이너 하나라도 실패로 종료하면 모든 컨테이너를 중지해요. -d와 함께 쓸 수 없어요 | |
--always-recreate-deps |
의존 컨테이너를 다시 생성해요. --no-recreate와 함께 쓸 수 없어요 | |
--attach |
STDIN·STDOUT·STDERR에 연결해요 | |
--attach-dependencies |
의존 서비스의 로그 출력에 자동으로 연결해요 | |
--build |
컨테이너를 시작하기 전에 이미지를 빌드해요 | |
-d, --detach |
백그라운드(detached) 모드로 실행해요 | |
--exit-code-from |
선택한 서비스 컨테이너의 종료 코드를 반환해요. --abort-on-container-exit을 의미해요 | |
--force-recreate |
구성이 바뀌지 않아도 컨테이너를 다시 생성해요 | |
--menu |
연결 시 대화형 단축키를 활성화해요. --detach와 함께 쓸 수 없어요 | |
--no-attach |
지정한 서비스에 연결(로그 스트리밍)하지 않아요 | |
--no-build |
정책과 달라도 이미지를 빌드하지 않아요 | |
--no-color |
단색(monochrome) 출력을 만들어요 | |
--no-deps |
연결된 서비스를 시작하지 않아요 | |
--no-log-prefix |
로그에 접두사를 붙이지 않아요 | |
--no-recreate |
컨테이너가 이미 있으면 다시 생성하지 않아요. --force-recreate와 함께 쓸 수 없어요 | |
--no-start |
서비스를 생성한 뒤 시작하지 않아요 | |
--pull |
policy |
생성 전에 이미지를 가져올지 정해요 (always, missing, never) |
--quiet-build |
빌드 출력을 숨겨요 | |
--quiet-pull |
진행 정보를 출력하지 않고 그냥 가져와요 | |
--remove-orphans |
Compose 파일에 정의되지 않은 서비스의 컨테이너를 제거해요 | |
-V, --renew-anon-volumes |
이전 컨테이너의 익명 볼륨 대신 새로 만들어요 | |
--scale |
SERVICE를 NUM 인스턴스로 확장해요. Compose 파일의 scale 설정을 덮어써요 |
|
-t, --timeout |
연결 시 또는 이미 실행 중일 때 컨테이너 종료에 쓰는 타임아웃(초)을 정해요 | |
--timestamps |
타임스탬프를 보여줘요 | |
--wait |
서비스가 실행될 때까지 기다려요 | |
--wait-timeout |
프로젝트가 실행될 때까지 기다릴 최대 시간(초)을 정해요 | |
-w, --watch |
소스 코드를 감시하고 파일이 바뀌면 컨테이너를 다시 빌드·새로고침해요 | |
-y, --yes |
모든 프롬프트에 "yes"로 답하고 비대화형으로 실행해요 |