Видалення образів, контейнерів і томів 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 для чищення дискового простору і системи шляхом видалення непотрібних образів, контейнерів і томів.
Як користуватися керівництвом?
Необов'язково виконувати всі розділи послідовно; виконуйте тільки необхідні розділи.
Синтаксис команд 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.