Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.
С руководством по установке Docker можно ознакомиться здесь.
Очистка всех неиспользуемых или не связанных с контейнерами образов, контейнеров
В Docker имеется команда отвечающая за эти действия:
docker system prune
root@kvmde68-19464:~# docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all dangling images
- all dangling build cache
Are you sure you want to continue? [y/N]
Для того чтобы удалить все остановленные контейнеры и неиспользуемые образы, необходимо добавить в эту команду флаг -a:
docker system prune -a
root@kvmde68-19464:~# docker system prune -a
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container
- all images without at least one container associated to them
- all build cache
Are you sure you want to continue? [y/N] y
Deleted Images:
untagged: ubuntu:latest
untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01
deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3
deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47
deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387
deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f
Удаление образов Docker
- Удаление одного или нескольких конкретных образов
Команда docker images с флагом -a, позволит найти идентификатор удаляемых образов, эта команда покажет вам все образы, включая промежуточные слои образов.
docker images -a
root@kvmde68-19464:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
debian latest 5971ee6076a0 3 weeks ago 114MB
ubuntu latest 1d622ef86b13 6 weeks ago 73.9MB
centos latest 470671670cac 4 months ago 237MB
Когда вы определитесь с составом удаляемых образов, вы можете передать их идентификаторы или теги в docker rmi:
docker rmi ubuntu
root@kvmde68-19464:~# docker rmi ubuntu
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01
Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3
Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47
Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387
Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f
- Удаление образов, не привязанных к контейнеру
Образы Docker состоят из нескольких слоев. Несвязанные образы - это слои, не имеющие связей с каким-либо образами с тегами. У них нет никакого назначения, и они просто занимают место на диске. Для их поиска можно использовать флаг фильтра -f со значением dangling=true в команде docker images.
docker images -f dangling=true
Удаление:
docker images purge
- Удаление образов по шаблону
Вы можете найти все образы, соответствующие определенному шаблону, используя комбинацию команд docker images и grep.
docker images -a | grep "centos"
root@kvmde68-19464:~# docker images -a | grep "centos"
centos latest 470671670cac 4 months ago 237MB
Вы можете удалить их, используя awk для передачи идентификаторов в docker rmi.
docker images -a | grep "centos" | awk '{print $3}' | xargs docker rmi
root@kvmde68-19464:~# docker images -a | grep "centos" | awk '{print $3}' | xargs docker rmi
Untagged: centos:latest
Untagged: centos@sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Deleted: sha256:470671670cac686c7cf0081e0b37da2e9f4f768ddc5f6a26102ccd1c6954c1ee
Deleted: sha256:0683de2821778aa9546bf3d3e6944df779daba1582631b7ea3517bb36f9e4007
- Удаление всех образов
Для вывода всех образов Docker в системе нужно добавить флаг -a в команду docker images.
docker images -a
root@kvmde68-19464:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
debian latest 5971ee6076a0 3 weeks ago 114MB
ubuntu latest 1d622ef86b13 6 weeks ago 73.9MB
Если вы хотите удалить все образы, добавьте флаг -q для передачи идентификатора образа в docker rmi:
docker rmi $(docker images -a -q)
root@kvmde68-19464:~# docker rmi $(docker images -a -q)
Untagged: debian:latest
Untagged: debian@sha256:4ab3309ba955211d1db92f405be609942b595a720de789286376f030502ffd6f
Deleted: sha256:5971ee6076a06b695a62d8dbb5e4c977f2db1e45902f5bb8d4b74511d9649dde
Deleted: sha256:8c02234b86056c009036ff0c31efb9a726412392d9872dacf95103767ac3b101
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
Deleted: sha256:1d622ef86b138c7e96d4f797bf5e4baca3249f030c575b9337638594f2b63f01
Deleted: sha256:279e836b58d9996b5715e82a97b024563f2b175e86a53176846684f0717661c3
Deleted: sha256:39865913f677c50ea236b68d81560d8fefe491661ce6e668fd331b4b680b1d47
Deleted: sha256:cac81188485e011e56459f1d9fc9936625a1b62cacdb4fcd3526e5f32e280387
Deleted: sha256:7789f1a3d4e9258fbe5469a8d657deb6aba168d86967063e9b80ac3e1154333f
Удаление контейнеров
- Удаление одного или нескольких конкретных контейнеров
Используйте команду docker ps с флагом -a для поиска имен или идентификаторов контейнеров, которые вы хотите удалить:
docker ps -a
root@kvmde68-19464:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f0fd79d66827 ubuntu "/bin/bash" About a minute ago Exited (130) 24 seconds ago magical_lamport
Удаление:
docker rm ID_or_Name ID_or_Name
- Удаление контейнера при выходе
Если вы создаете контейнер, который вам не будет нужен после завершения его использования, вы можете использовать команду docker run --rm для его автоматического удаления при выходе.
Запуск и удаление:
docker run --rm image_name
- Удаление всех контейнеров, из которых выполнен выход
Вы можете найти контейнеры с помощью команды docker ps -a и отфильтровать их по статусу:
- created (создан);
- restarting (перезапускается);
- running (работает);
- paused (пауза);
- exited (выполнен выход).
Для того чтобы просмотреть список контейнеров, из которых выполнен выход, используйте флаг -f для фильтрации по статусу.
docker ps -a -f status=exited
Убедитесь, что вы хотите удалить эти контейнеры, и используйте флаг -q для передачи идентификаторов в команду docker rm.
docker rm $(docker ps -a -f status=exited -q)
- Удаление контейнеров с использованием нескольких фильтров
Фильтры Docker можно комбинировать, повторяя флаг фильтра с дополнительным значением. В результате выводится список контейнеров, соответствующих любому из указанных условий.
docker ps -a -f status=exited -f status=created
Если вы хотите удалить все контейнеры со статусом Created или Exited, то можно использовать несколько фильтров:
docker rm $(docker ps -a -f status=exited -f status=created -q)
- Удаление контейнеров по шаблону
Чтобы найти все контейнеры, соответствующие определенному шаблону, используйте сочетание команд docker ps и grep.
docker ps -a | grep "pattern”
Когда вы будете удовлетворены списком удаляемых контейнеров, используйте awk и xargs для передачи идентификаторов в команду docker rmi.
docker ps -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
- Остановка и удаление всех контейнеров
Для просмотра контейнеров в системе используется команда docker ps с флагом -a будет выведен список всех контейнеров.
docker ps -a
Если вы хотите удалить их, добавьте флаг -q для передачи их идентификаторов командам docker stop и docker rm:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
root@kvmde68-19464:~# docker stop $(docker ps -a -q)
f0fd79d66827
root@kvmde68-19464:~# docker rm $(docker ps -a -q)
Error response from daemon: You cannot remove a running container f0fd79d66827b9b9e37b88048b18309eeb450a81823ffaa4c66046c4b93bb299. Stop the container before attempting removal or force remove
Если у Вас возникли трудности в настройке или появились дополнительные вопросы, вы всегда можете обращаться в нашу службу поддержки через систему тикетов.