Uruchamiam kontener docker z obrazu za pomocą następującego polecenia:
$ docker run -d myimage /bin/bash -c "mycommand"
Po "mycommand"
zakończeniu kontener jest zatrzymywany (przypuszczam, że jest zatrzymany), ale nie jest usuwany, ponieważ widzę go za pomocą tego polecenia:
$ docker ps -a
Czy istnieje sposób do restart
tego kontenera z tymi samymi parametrami i zachować dane wygenerowane przez mycommand
?
Odpowiedzi:
Tak, po zakończeniu wykonywania polecenia początkowego kontener zatrzymuje się.
Możesz uruchomić zatrzymany kontener za pomocą:
docker start container_name
Jeśli chcesz zobaczyć wynik swojego polecenia, powinieneś dodać
-ai
opcje:docker start -ai container_name
PS. istnieje
docker restart container_name
ale, które jest używane do ponownego uruchomienia działającego kontenera - uważam, że nie jest to twój przypadek.źródło
docker exec -it container_name bash
. Kiedy uruchomiłem polecenie z wnętrza kontenera, mogłem zobaczyć, dlaczego początkowa implementacja mojego skryptu nie powiodła się i naprawiłem to.start
zsleep
? Nie jestem w stanie dojść do punktu, w którym mogę biecexec
Najpierw
$ docker ps -a
pokazuje wszystkie kontenery (te, które są uruchomione i te, które zostały zatrzymane), więc to jest powód, dla którego nie widzisz swojego zatrzymanego kontenera na liście.Po drugie, możesz łatwo uruchomić zatrzymany kontener:
Po uruchomieniu kontenera możesz uruchomić polecenie przez:
Rzeczy, które utworzysz w swoim kontenerze, pozostaną w nim tak długo, jak długo istnieje. Jeśli chcesz zachować dane nawet po usunięciu kontenera, możesz użyć woluminu .
źródło
Powinno być
źródło
restart
na już działający kontener