W praktyce na początek pojemnik, robię:
docker run a8asd8f9asdf0
Jeśli tak jest, co:
docker start
zrobić?
W instrukcji jest napisane
Uruchom jeden lub więcej zatrzymanych pojemników
execute?
W praktyce na początek pojemnik, robię:
docker run a8asd8f9asdf0
Jeśli tak jest, co:
docker start
zrobić?
W instrukcji jest napisane
Uruchom jeden lub więcej zatrzymanych pojemników
execute?
Odpowiedzi:
To bardzo ważne pytanie, a odpowiedź jest bardzo prosta, ale fundamentalna:
docker run IMAGE_ID i nie docker run CONTAINER_IDdocker stop CONTAINER_ID, możesz ponownie uruchomić ten sam pojemnik za pomocą polecenia docker start CONTAINER_ID, a dane i ustawienia będą takie same.docker rm container_id). Z drugiej strony dane woluminów przetrwają usunięcie kontenera, chyba że -vw wierszu poleceń podano wyraźnie opcję. Lokalizacja woluminu w systemie hosta może być bezpośrednio sprawdzona. Zobacz ten artykuł
& na końcu runwiersza poleceń? Potrzebuję go jako nabożeństwa (24 godziny)
runuruchamia obrazstarturuchamia pojemnik .docker runDoc wspomina:
docker runPolecenie najpierw tworzy zapisywalną warstwę kontenera po określonym obrazie, a następnie rozpoczyna się go przy użyciu określonego polecenia.Oznacza to, że doker prowadzony jest odpowiednikiem API
/containers/createpotem/containers/(id)/start.
Nie uruchamiasz istniejącego kontenera, dokujesz do niego exec (od docker 1.3) .
Możesz zrestartować opuszczony kontener .
-ido docker runinteraktywnego procesu? Chodzi mi o to, że uruchomienie dokera wymaga obrazu do uruchomienia kontenera.
Objaśnienie na przykładzie:
Załóżmy, że masz na komputerze obraz gry (ISO).
Po runzamontowaniu obrazu jako dysku wirtualnego tworzony jest dysk wirtualny z całą zawartością gry na dysku wirtualnym, a plik instalacyjny gry jest automatycznie uruchamiany. [Uruchamianie obrazu dokera - tworzenie kontenera, a następnie uruchamianie go.]
Ale kiedy go stop(podobnie jak przystanek dokera), dysk wirtualny nadal istnieje, ale zatrzymuje wszystkie procesy. [Ponieważ kontener istnieje, dopóki nie zostanie usunięty]
A kiedy to zrobisz start (podobnie do startu dokera), z dysku wirtualnego pliki gier zaczną się uruchamiać. [uruchamianie istniejącego kontenera]
W tym przykładzie - Obraz gry jest obrazem Dockera, a dysk wirtualny jest kontenerem.
Odpowiedź daniele3004 jest już całkiem dobra.
Tylko szybkie i brudne formuła dla ludzi takich jak ja, którzy Mieszanki się runi startod czasu do czasu:
docker run [...]= docker pull [...]+docker start [...]
"...docker run is equivalent to the API /containers/create then /containers/(id)/start.(źródło: docs.docker.com/engine/reference/commandline/run )
runpolecenie tworzy kontener z obrazu, a następnie uruchamia proces rootowania na tym kontenerze. Uruchomienie go z run --rmflagą można by oszczędzić kłopotu z wyjęciem bezużyteczną martwego pojemnik później i pozwoli Ci ignorować istnienie docker starti docker removecałkowicie.
run polecenie wykonuje kilka różnych czynności:
docker run --name dname image_name bash -c "whoami"
docker psbash -c "whoami". Jeśli ktoś biegniedocker run --name dname image_name bez polecenia wykonania kontenera, natychmiast przejdzie w stan zatrzymania.docker removeprzed uruchomieniem kontenera o tej samej nazwie.Jak usunąć pojemnik, gdy zostanie automatycznie zatrzymany? Dodaj--rmflagę dorunpolecenia:
docker run --rm --name dname image_name bash -c "whoami"
Jak wykonać wiele poleceń w jednym kontenerze? Zapobiegając śmierci tego procesu root. Można to zrobić, uruchamiając jakieś bezużyteczne polecenie na początku z--detachedflagą, a następnie używając polecenia „wykonaj”, aby uruchomić rzeczywiste polecenia:
docker run --rm -d --name dname image_name tail -f /dev/null
docker exec dname bash -c "whoami"
docker exec dname bash -c "echo 'Nnice'"
Dlaczego więc potrzebujemy docker stop? Aby zatrzymać ten trwały kontener, który uruchomiliśmy w poprzednim fragmencie za pomocą niekończącego się poleceniatail -f /dev/null.