docker-compose up과 docker-compose start의 차이점은 무엇입니까?


124

내가 실행할 때마다

docker-compose start 
docker-compose ps

상태가 "UP"인 내 컨테이너를 봅니다. 만약 내가한다면

docker-compose up -d

더 자세한 정보가 표시되지만 동일한 상태를 갖게됩니다. 두 명령에 차이가 있습니까?

답변:


166

docker-compose 시작
( https://docs.docker.com/compose/reference/start/ )

서비스에 대한 기존 컨테이너를 시작합니다.

docker-compose up
( https://docs.docker.com/compose/reference/up/ )

서비스를위한 컨테이너를 빌드, (재) 생성, 시작 및 연결합니다.

이미 실행 중이 아니면이 명령은 연결된 서비스도 시작합니다.

docker-compose up명령은 각 컨테이너의 출력을 집계합니다 (기본적으로 실행 중 docker-compose logs -f). 명령이 종료되면 모든 컨테이너가 중지됩니다. 실행 docker-compose up -d은 백그라운드에서 컨테이너를 시작하고 실행 상태로 둡니다.

서비스에 대한 기존 컨테이너가 있고 컨테이너 생성 후 서비스의 구성 또는 이미지가 변경된 경우 컨테이너 docker-compose up를 중지하고 다시 생성 하여 변경 사항을 선택합니다 (마운트 된 볼륨 유지). Compose가 변경 사항을 선택하지 않도록하려면 --no-recreate플래그를 사용하십시오 .

전체 CLI 참조 :
https://docs.docker.com/compose/reference/


3
docker-compose CLI 참조에 대한 업데이트 된 링크 : docs.docker.com/compose/reference * docker-compose up : docs.docker.com/compose/reference/up * docker-compose start : docs.docker.com/compose/reference / start
michael

18

docker 자주 묻는 질문에서 이것은 매우 명확하게 설명됩니다.

시작, 실행 및 시작의 차이점은 무엇입니까?

일반적으로 docker-compose up. 에 up정의 된 모든 서비스를 시작하거나 다시 시작하는 데 사용 합니다 docker-compose.yml. 기본 "연결"모드에서는 모든 컨테이너의 모든 로그가 표시됩니다. "분리"모드 ( -d)에서 Compose는 컨테이너를 시작한 후 종료되지만 컨테이너는 백그라운드에서 계속 실행됩니다.

docker-compose run명령은 "일회성"또는 "임시"작업을 실행하기위한 것입니다. 실행하려는 서비스 이름이 필요하며 실행중인 서비스가 의존하는 서비스에 대한 컨테이너 만 시작합니다. run 테스트를 실행하거나 데이터 볼륨 컨테이너에서 데이터 제거 또는 추가와 같은 관리 작업을 수행하는 데 사용 합니다. 이 run명령은 docker run -ti컨테이너에 대한 대화 형 터미널을 열고 컨테이너에있는 프로세스의 종료 상태와 일치하는 종료 상태를 반환하는 것과 같은 역할 을합니다.

docker-compose start명령은 이전에 생성되었지만 중지 된 컨테이너를 다시 시작하는 데만 유용합니다. 새로운 컨테이너를 생성하지 않습니다.


다시 시작 명령이 실행, 시작, 시작과 어떻게 다른가요?
Nag
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.