Видалення образів, контейнерів і томів docker

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

Пропозиція від 8host.com

Видалення образів, контейнерів і томів docker

Docker дозволяє швидко упакувати додаток або сервіс в контейнер, який можна запустити в будь-якому оточенні. Однак при роботі з Docker швидко накопичуються непотрібні образи, контейнери та томи даних, які засмічують висновок і споживають дисковий простір.

Docker не надає прямих команд для чищення, проте він пропонує набір інструментів для чистки системи за допомогою командного рядка. Це посібник є шпаргалку по командам Docker для чищення дискового простору і системи шляхом видалення непотрібних образів, контейнерів і томів.

Як користуватися керівництвом?

Необов'язково виконувати всі розділи послідовно; виконуйте тільки необхідні розділи.

Синтаксис команд command $ (command) доступний в багатьох популярних оболонках (bash, zsh, Windows Powershell).

Видалення образів Docker

Видалення конкретного способу

Команда docker images з прапором -a дає змогу дізнатися ID образу, який потрібно видалити. Вона відображає всі образи, включаючи проміжні рівні. Визначивши образи, які потрібно видалити, ви можете передати їх ID команді docker rmi:

docker images -a
docker rmi Image1 Image2

Видалення недійсних образів

Образи Docker складаються з декількох рівнів. Недійсні образи - це рівень образів, які більше не мають ніякого відношення до образів з мітками. Вони даремно споживають дисковий простір. Щоб знайти такі образи, використовуйте команду docker images і прапор -f (filter) із значенням dangling = true. Якщо ви впевнені, що хочете видалити всі ці образи, додайте в команду docker rmi прапор -q і вкажіть ID образів через пробіл.

docker images -f dangling = true

Щоб знайти і видалити образи:

docker rmi $ (docker images -f dangling = true -q)

Примітка. Якщо при створенні образу не були додані мітки, такий образ також виявиться в списку недійсних образів, так як у нього немає ніякого зв'язку з мітками. Щоб уникнути цього, додавайте мітки при складанні образу. Команда docker tag дозволяє додати мітку після складання образу.

Видалення образів за шаблоном

За допомогою команд docker images і grep можна знайти все образи, відповідні шаблоном. Щоб видалити всі співпадаючі з шаблоном образи, можна передати команді docker rmi ID всіх образів за допомогою команди awk. Майте на увазі: ці утиліти не надаються платформою Docker і не завжди доступні в системі за замовчуванням.

docker ps -a | grep "шаблон"

щоб видалити образи:

docker images | grep "шаблон" | awk '' | xargs docker rm

Видалення всіх образів

docker images -a

Щоб видалити всі образи, додайте прапор -q і передайте образи команді docker rmi:

docker rmi $ (docker images -a -q)

видалення контейнерів

Видалення конкретного контейнера

Команда docker ps з прапором -a відображає всі доступні контейнери (їх імена або ID).

Щоб видалити контейнер (або кілька контейнерів), передайте ім'я або ID команді docker rm:

docker rm ID_ілі_імя_контейнера ID_ілі_імя_контейнера1

Видалення контейнера при зупинці

Якщо при складанні контейнера ви точно знаєте, що після виконання завдання він стане непотрібним, ви можете автоматично видалити його за допомогою docker run -rm. Як тільки контейнер виконає своє завдання і зупиниться, він буде видалений.

docker run --rm імя_контейнера

Видалення всіх зупинених контейнерів

За допомогою команди docker ps -a, прапора -f і параметра status ви можете знайти всі доступні контейнери, які знаходяться в певному стані: created, restarting, running, paused і exited. наприклад:

docker ps -a -f status = exited

Щоб видалити всі зупинені контейнери, використовуйте прапор -q в команді docker rm і передайте їй ID контейнерів, які потрібно видалити:

docker rm $ (docker ps -a -f status = exited -q)

Видалення контейнера за допомогою декількох фільтрів

Фільтри Docker можна комбінувати. Для цього потрібно просто повторно додати прапор -f. Наприклад, щоб вивести всі контейнери зі статусом created (контейнер був створений, але запущений за допомогою неправильної команди) і exited, можна використовувати команду:

docker ps -a -f status = exited -f status = created

Щоб видалити ці контейнери, потрібно ввести:

docker rm $ (docker ps -a -f status = exited -f status = created)

Видалення контейнерів за шаблоном

Пошук контейнерів за шаблоном можна виконати за допомогою команд docker ps і grep.

docker ps -a | grep "шаблон"

Знайшовши всі контейнери, які відповідають заданим шаблоном, ви можете видалити їх за допомогою команд docker rmi, awk і xargs.

Примітка. Ці утиліти не завжди поставляються системою за замовчуванням.

docker ps -a | grep "шаблон" | awk '' | xargs docker rmi

Зупинка і видалення контейнера

Щоб видалити контейнери, передайте їх ID командам docker stop і docker rm за допомогою прапора -q:

docker stop $ (docker ps -a -q)
docker rm $ (docker ps -a -q)

видалення томів

Видалення конкретного томи (Docker 1.9 +)

Щоб дізнатися ім'я томи (або томів), використовуйте команду:

docker volume ls

Щоб видалити те, вкажіть його ім'я в команді docker volume rm. Щоб видалити кілька томів, вкажіть їх імена через пробіл.

docker volume rm том1 том2 том3

Видалення недійсних томів (Docker 1.9 +)

Том повинен існувати незалежно від контейнера. Отже, коли контейнер видаляється, тому не видаляється автоматично. Він залишається в системі, хоча більше не обслуговує жоден контейнер. Такі томи вважаються недійсними і просто займають місце на диску.

Щоб знайти такі томи, використовуйте команду:

docker volume ls -f dangling = true

Щоб видалити недійсні томи, використовуйте:

docker volume rm $ (docker volume ls -f dangling = true -q)

Видалення томи разом з контейнером

Якщо ви створили безіменний тому, ви можете видалити його разом з контейнером за допомогою прапора -v.

Примітка. Це працює тільки з безіменними контейнерами!

Коли контейнер успішно вилучено, на екрані відображається його ID. При цьому в команді ніяк не позначав видалення контейнера. Якщо те не має імені, він буде просто видалений з системи. Якщо у томи є ім'я, він залишиться в системі.

docker rm -v імя_контейнера

висновок

Даний посібник пропонує вам загальні команди з видалення контейнерів, образів і томів Docker 1.9 +. Існує безліч корисних комбінацій і прапорів, які були описані в цій статті. Дізнатися про доступні опціях можна в документації Docker для команд docker rmi. docker rm і docker volume rm.