Jaka jest różnica między poleceniami docker run
i docker create
?
Zwykle używam, run
ale czasami widzę w dokumentacji create
.
Docker --help
opowiada
create Create a new container
run Run a command in a new container
Czy to oznacza, że run
jest używany, gdy musimy przekazać polecenie do nowego kontenera? Jaki jest zatem cel create
?
Technicznie,
docker run
=docker create
+docker start
.źródło
docker run
=docker create
+docker start
+docker attach
. Bezattach
, uruchomiony kontener działa w tledocker create
polecenie tworzy zapisywalny kontener z obrazu i przygotowuje go do uruchomienia .docker run
polecenie tworzy kontener (tak samo jakdocker create
) i uruchamia go .źródło
Inne odpowiedzi obejmują to, ale pomyślałem, że pokażę równoważne wiersze poleceń powłoki, ponieważ wyjaśnia to naprawdę:
jest taki sam jak
W tym przypadku
docker create
służy do tworzenia kontenera z nazwanego obrazu i wyprowadza utworzony identyfikator kontenera idocker start
jest używany do uruchamiania kontenera z tym identyfikatorem. Ta-a
opcja powoduje dołączenie terminala, tak aby kontener działał na pierwszym planie, co jest domyślnym zachowaniemdocker run
.Kontener, który został utworzony, ale nigdy nie został uruchomiony, będzie miał
Created
status; można to zobaczyć zdocker container ls -a
.źródło
Jestem nowy w dockerze i właśnie zacząłem się nim bawić;
Uważam, że docker run zasadniczo wykonuje następujące czynności: (w kolejności ...) docker create , docker start , docker attach , ponieważ natychmiast dołącza się do aktywnej powłoki po wykonaniu polecenia „run” .
źródło
Uruchomienie Dockera służy głównie do uruchamiania poleceń w kontenerze.
Powyższe służy do tworzenia terminala bash. I każ nam używać poleceń bash w kontenerze.
Tworzenie platformy Docker polega na utworzeniu kontenera z obrazu platformy Docker.
Powyższe ma na celu utworzenie dockera kontenera o nazwie „docker-ubuntu” z obrazu „ubuntu”
źródło
docker run -it <Container name>
bez wykonywania / bin / bash. Na przykład ruby automatycznie uruchomi plik wykonywalny o nazwie irb. Możesz również uruchomić -d, co jest zrobione z dockersamples / static-site, które się nie logują. Więc myślę, że nie wykonuje, ale po prostu go uruchamia.