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.