Введение
Docker позволяет легко упаковывать приложения и сервисы в контейнеры, чтобы их можно было запускать где угодно. Однако при работе с Docker легко накапливается большое количество неиспользуемых образов, контейнеров и томов данных, которые загромождают выходные данные и занимают место на диске. Docker предоставляет все необходимые инструменты для очистки системы из командной строки. Эта шпаргалка представляет собой краткий справочник по командам, которые полезны для освобождения места на диске и организации системы путем удаления неиспользуемых образов, контейнеров и томов Docker.
Как пользоваться этим руководством:
- Это руководство представлено в форме шпаргалки с отдельными фрагментами командной строки.
- Перейдите к каждому разделу, соответствующему задаче, которую вы хотите выполнить.
Удалить все изображения, контейнеры и тома
Docker предоставляет одну команду, которая очищает любые ресурсы, такие как образы, контейнеры, тома и сети:
docker system pruneЧтобы удалить остановленные контейнеры и все неиспользуемые образы, добавьте -a к команде:
docker system prune -aУдалить образы Docker
Используйте команду docker images с опцией -a, чтобы найти идентификаторы образов, которые вы хотите удалить. В результате будет показан каждый образ, включая его средние слои. После того, как вы нашли образы, которые хотите удалить, вы можете передать их идентификаторы или теги в docker rmi:
Список:
docker images -aУдаление:
docker rmi Image ImageУдалить висящие изображения
Образы Docker состоят из нескольких слоёв. Висячие образы — это слои, не связанные ни с одним из помеченных образов. Они больше не выполняют никакой функции и занимают место на диске. Их можно найти, добавив фильтр -f со значением dangling=true к команде docker images. Если вы уверены, что хотите удалить их, используйте команду docker image prune:
Список:
docker images -f dangling=trueУдаление:
docker image pruneУдалить изображения по шаблону
Используя комбинацию образов Docker и grep, вы можете найти все образы, соответствующие шаблону. Если вас всё устраивает, вы можете удалить их с помощью awk, передав идентификаторы в docker rmi. Обратите внимание, что эти инструменты не предоставляются Docker и доступны не во всех системах:
Список:
docker images -a | grep "pattern"Удаление:
docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmiУдалить все изображения.
Все образы Docker в системе можно добавить, добавив -а Выведите список всех образов с помощью команды docker images. Если вы уверены, что хотите удалить их все, вы можете -q Добавьте, чтобы передать идентификатор образа в Docker рми Отправлять:
Список:
docker images -aУдаление:
docker rmi $(docker images -a -q)Удалить (удалить шаблон):
Используйте команду docker ps с опцией -a, чтобы найти имя или идентификатор контейнеров, которые вы хотите удалить:
Список:
docker ps -aУдаление:
docker rm ID_or_Name ID_or_NameУдалить все выходные форматы
Вы можете использовать контейнеры с докер пс -а Найдите и отфильтруйте их по статусу: создан, перезапущен, запущен, приостановлен или завершен. Чтобы просмотреть список завершенных контейнеров, используйте опцию -f для фильтрации по статусу. После подтверждения удаления этих контейнеров используйте опцию -q, чтобы передать идентификаторы команде docker rm:
Список:
docker ps -a -f status=exitedУдаление:
docker rm $(docker ps -a -f status=exited -q)Удалить шаблон, используя более одного фильтра
Фильтры Docker можно комбинировать, повторяя фильтр с дополнительным значением. В результате будет получен список контейнеров, соответствующих каждому из этих условий. Например, если вы хотите удалить все контейнеры, отмеченные как созданные (состояние, возникающее при запуске контейнера с недопустимой командой) или завершенные, можно использовать два фильтра:
Список:
docker ps -a -f status=exited -f status=createdУдаление:
docker rm $(docker ps -a -f status=exited -f status=created -q)Вырежьте форму по шаблону.
Вы можете найти все контейнеры, соответствующие шаблону, используя комбинацию команд docker ps и grep . Получив список контейнеров, которые нужно удалить, вы можете использовать awk и xargs для передачи идентификатора команде docker rm . Обратите внимание, что эти инструменты не предоставляются Docker и доступны не во всех системах:
Список:
docker ps -a | grep "pattern”Удаление:
docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rmОстановите и удалите все шаблоны.
Вы можете проверить контейнеры в вашей системе с помощью команды docker ps. Добавление -a отобразит все контейнеры. Если вы уверены, что хотите их удалить, добавьте -q к командам docker stop и docker rm, чтобы получить идентификаторы:
Список:
docker ps -aУдаление:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)Удалить тома
Удалить один или несколько определенных томов – Docker 1.9 и выше
Поскольку тома должны существовать независимо от контейнеров, при удалении шаблона том не удаляется автоматически. Когда том существует и больше не присоединён ни к одному контейнеру, он называется висячим томом. Чтобы определить его местоположение и подтвердить удаление, можно использовать команду docker volume ls с фильтром, ограничивающим результаты висячими томами. Получив удовлетворительный список, можно удалить их все с помощью команды docker volume prune:
Список:
docker volume ls -f dangling=trueУдаление:
docker volume pruneВозьмите шаблон и его объем.
Если вы создали безымянный том, его можно удалить одновременно с контейнером с помощью параметра -v. Обратите внимание, что это работает только с безымянными томами. После успешного удаления тома отображается его идентификатор. Обратите внимание, что об удалении тома ничего не говорится. Если том безымянный, он удаляется из системы без уведомления. Если у него есть имя, он присутствует без уведомления.
Удаление:
docker rm -v container_nameРезультат
В этом руководстве рассматриваются некоторые распространённые команды для удаления образов, контейнеров и томов в Docker. Существует множество других комбинаций и флагов, которые можно использовать с каждой из них. Полное описание доступных команд см. в документации Docker по очистке системы. докер, докер рми, докер-рм и том докера rm См. Если вы хотели бы видеть в руководстве какие-либо распространённые задачи по уборке, пожалуйста, спрашивайте или предлагайте их в комментариях.









