Jaka jest różnica między docker-compose up a docker-compose start?

124

Zawsze, gdy wykonuję

docker-compose start 
docker-compose ps

Widzę moje kontenery ze stanem „UP”. Jeśli zrobię

docker-compose up -d

Zobaczę więcej szczegółów, ale będzie miał ten sam stan. Czy jest jakaś różnica między oboma poleceniami?

Michael Villeneuve
źródło

Odpowiedzi:

166

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

Uruchamia istniejące kontenery dla usługi.

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

Kompiluje, (ponownie) tworzy, uruchamia i dołącza do kontenerów dla usługi.

O ile nie są już uruchomione, to polecenie uruchamia również wszystkie połączone usługi.

docker-compose upPolecenie agregatów wyjście każdego pojemnika (zasadniczo działa docker-compose logs -f). Kiedy polecenie kończy działanie, wszystkie kontenery są zatrzymywane. Uruchomienie docker-compose up -duruchamia kontenery w tle i pozostawia je uruchomione.

Jeśli istnieją kontenery dla usługi, a konfiguracja usługi lub jej obraz został zmieniony po utworzeniu kontenera, docker-compose upprzejmuje zmiany, zatrzymując i odtwarzając kontenery (zachowując zamontowane woluminy). Aby zapobiec pobieraniu zmian przez funkcję Compose, użyj --no-recreateflagi.

Pełne odniesienie do CLI:
https://docs.docker.com/compose/reference/

Luiz Lago
źródło
3
zaktualizowane łącze do odnośnika CLI docker -compose: 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

W dockerze Często zadawane pytania jest to bardzo jasno wyjaśnione:

Jaka jest różnica między uruchomieniem, uruchomieniem i uruchomieniem?

Zwykle chcesz docker-compose up. Służy updo uruchamiania lub ponownego uruchamiania wszystkich usług zdefiniowanych w docker-compose.yml. W domyślnym trybie „dołączonym” widoczne są wszystkie dzienniki ze wszystkich kontenerów. W trybie „odłączonym” ( -d) funkcja Compose kończy działanie po uruchomieniu kontenerów, ale kontenery nadal działają w tle.

docker-compose runKomenda jest do prowadzenia „one-off” lub zadania „AdHoc”. Wymaga nazwy usługi, którą chcesz uruchomić, i uruchamia kontenery tylko dla usług, od których zależy działająca usługa. Służy run do uruchamiania testów lub wykonywania czynności administracyjnych, takich jak usuwanie lub dodawanie danych do kontenera woluminu danych. runKomenda działa jak docker run -tiw to, że otwiera interaktywny terminal do pojemnika i zwraca kod zakończenia pasujący kod zakończenia procesu w pojemniku.

docker-compose startPolecenie jest przydatne tylko do restartu pojemnikach, które zostały wcześniej utworzone, ale zostali zatrzymani. Nigdy nie tworzy nowych pojemników.

Supun Praneeth
źródło
czym polecenie restartu różni się od któregokolwiek z nich - uruchom, uruchom, uruchom?
Nag