Безопасно ли удалять контейнеры Docker, перечисленные с помощью `docker ps -f status= made`?

Я уже видел сообщения, показывающие, как удалить вышедшие контейнеры, перечисленные с docker ps -q -f status=exited, но я также хочу очистить "созданные", но не "запущенные" контейнеры. Безопасно ли удалять контейнеры со статусом "создан" или есть обратная сторона?

2 ответа

Решение

Docker контейнеры с created статус - это контейнеры, которые создаются из изображений, но никогда не запускаются. Удаление их не оказывает никакого влияния, так как вы бы не запустили какой-либо процесс в контейнере и вызвали бы изменение состояния созданного контейнера, в последнем случае требуется зафиксировать. Обычно это делается для ускорения запуска контейнера и обеспечения готовности всей конфигурации.

См. Докер документы

Команда docker create создает доступный для записи слой-контейнер над указанным изображением и подготавливает его для выполнения указанной команды. Идентификатор контейнера затем печатается в STDOUT. Это похоже на команду docker run -d, за исключением того, что контейнер никогда не запускается. Затем вы можете использовать команду запуска docker для запуска контейнера в любой точке.

Это полезно, если вы хотите настроить контейнер заранее, чтобы он был готов к запуску, когда вам это нужно. Первоначальный статус нового контейнера создан.

Существует две возможности для контейнера находиться в созданном состоянии:

  1. Как объясняет @askb, докер-контейнер, созданный из образа с помощью команды docker create, в итоге окажется в команде create
  2. Контейнер Docker, созданный командой run, но не способный запуститься. Здесь много причин, но easiestone - это докер-контейнер с отображением портов на уже связанные

Чтобы ответить на вопрос, в обоих случаях их удаление безопасно.

Способ воспроизвести контейнер Docker в созданном состоянии с помощью команды run:

docker pull loicmathieu/vsftpd
docker run -p 621:21 -d  loicmathieu/vsftpd ftp
docker run -p 621:21 -d  loicmathieu/vsftpd ftp

Тогда Docker PS -a даст вам что-то вроде

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS
e60dcd51e4e2        loicmathieu/vsftpd     "/start.sh ftp"          6 seconds ago       Created
7041c77cad53        loicmathieu/vsftpd     "/start.sh ftp"          16 seconds ago      Up 15 seconds
Другие вопросы по тегам