Подтвердить что ты не робот

Какая разница между "докерной остановкой" и "докером rm"?

Первоначально я думал, что docker stop эквивалентен vagrant halt, а docker rm - vagrant destroy.

Но в принципе, контейнеры докеров не имеют состояния, за исключением оператора VOLUME, который AFAIK сохраняет содержимое каталога даже после docker rm, если он не был вызван с -v.

Итак, в чем разница?

4b9b3361

Ответ 1

docker stop сохраняет контейнер в docker ps -a список (что дает возможность зафиксировать его, если вы хотите сохранить его состояние на новом изображении).
Сначала он отправляет SIGTERM, затем, после льготного периода, SIGKILL.

docker rm удалит контейнер из списка docker ps -a, потеряв свое "состояние" (многоуровневые файловые системы, написанные поверх файловая система изображения).
Он не может удалить запущенный контейнер (если не вызван с -f, и в этом случае он отправляет SIGKILL напрямую).

В течение жизненного цикла вы должны сначала остановить контейнер, а затем удалить его. Это дает возможность контейнеру PID 1 собирать процессы зомби.