Безопасно ли удалять контейнеры Docker, перечисленные с помощью `docker ps -f status= made`?
Я уже видел сообщения, показывающие, как удалить вышедшие контейнеры, перечисленные с docker ps -q -f status=exited
, но я также хочу очистить "созданные", но не "запущенные" контейнеры. Безопасно ли удалять контейнеры со статусом "создан" или есть обратная сторона?
2 ответа
Docker контейнеры с created
статус - это контейнеры, которые создаются из изображений, но никогда не запускаются. Удаление их не оказывает никакого влияния, так как вы бы не запустили какой-либо процесс в контейнере и вызвали бы изменение состояния созданного контейнера, в последнем случае требуется зафиксировать. Обычно это делается для ускорения запуска контейнера и обеспечения готовности всей конфигурации.
Команда docker create создает доступный для записи слой-контейнер над указанным изображением и подготавливает его для выполнения указанной команды. Идентификатор контейнера затем печатается в STDOUT. Это похоже на команду docker run -d, за исключением того, что контейнер никогда не запускается. Затем вы можете использовать команду запуска docker для запуска контейнера в любой точке.
Это полезно, если вы хотите настроить контейнер заранее, чтобы он был готов к запуску, когда вам это нужно. Первоначальный статус нового контейнера создан.
Существует две возможности для контейнера находиться в созданном состоянии:
- Как объясняет @askb, докер-контейнер, созданный из образа с помощью команды docker create, в итоге окажется в команде create
- Контейнер 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