Як видалити образи, контейнери та томи docker 1
вступ
Docker дає змогу порівняти різні упакувати ваші програми і служби в контейнери, завдяки чому ви можете запускати їх на будь-якій платформі. Однак, у міру роботи з Docker у вас запросто може накопичитися надлишок непотрібних образів, контейнерів і томів, які наводять бардак в вихідних даних і захаращують собою місце на диску.
Хоча в Docker і не передбачено безпосередніх прямих команд для видалення непотрібних образів, контейнерів і томів, дана програма пропонує користувачам всі необхідні інструменти для очищення системи через командний рядок. Ця невелика шпаргалка коротко познайомить вас з корисними командами для звільнення місця на диску і підтримки вашої системи в охайному і організованому вигляді за рахунок видалення неиспольз образів, контейнерів і томів Docker.
Як використовувати цей посібник:
Синтаксис підстановки команд, command $ (command). який використовується в командах, який продається в багатьох популярних оболонках, включаючи bash. zsh і Windows Powershell.
Видалення образів Docker
Видалення одного або декількох конкретних образів
Використовуйте команду docker images command зі прапорцем -a. щоб знайти ID образів, які ви бажаєте видалити. Ця команда покаже вам кожен образ, включаючи проміжні шари образу. Після того як ви виявили потрібний образ, який ви хочете видалити, ви можете включити їх ID або тег в команду docker rmi:
Видалення підвішених образів
Образи Docker складаються з декількох шарів. Підвішені образи - це шари, які не мають зв'язків з іншими маркованими образами. Вони більше не служать будь-якої мети і просто займають місце на диску. Їх можна знайти, додавши прапорець фільтра -f зі значенням dangling = true до команди docker images. Якщо ви впевнені, що бажаєте видалити подібні образи, ви можете додати прапорець -q, після чого ввести їх ID після команди docker rmi:
Примітка: Якщо ви створили образ і не маркували його тегом, такий образ автоматично відобразиться в переліку підвішених образів, оскільки у нього відсутні зв'язку з маркованими образами. Ви можете уникнути цієї ситуації, присвоївши образу тег при створенні, або привласнити образу тег пізніше за допомогою команди docker tag.
Видалення образів відповідно до конкретної схемою
Ви можете знайти образи, які відповідають схемі, за допомогою комбінації команд docker images і grep. Після того як ви знайдете всі потрібні образи, ви можете використовувати команду awk. щоб ввести ID відповідних образів в docker rmi. Зверніть увагу, що дані утиліти не входять до стандартного комплекту поставки платформи Docker і не обов'язково доступні в системі:
Видалення всіх образів
Всі образи Docker в системі можна вибрати, додавши прапорець -a до команди docker images. Якщо ви впевнені, що бажаєте видалити всі образи, додайте прапорець -q, щоб вказати ID всіх образів в команді docker rmi:
видалення контейнерів
Видалення одного або декількох конкретних контейнерів
Використовуйте команду docker ps c прапорцем -a. щоб знайти імена або ID контейнерів, які ви бажаєте видалити:
Видалення контейнера при виході
Якщо створюючи контейнер, ви вже заздалегідь знаєте, що він більше не знадобиться вам після того, як ви закінчите роботу, ви можете запустити команду docker run --rm для того, щоб автоматично видалити контейнер після завершення роботи з ним.
Запуск і видалення:
Видалення всіх закритих контейнерів
Видалення контейнерів за допомогою більш одного фільтра
Фільтри Docker можна комбінувати, повторюючи прапорець фільтра з додатковим значенням. В результаті цього буде показаний список контейнерів, який відповідає одній з умов. Наприклад, якщо ви бажаєте видалити всі контейнери, помічені як «Створені» (стан, який може виникати, якщо ви запускаєте контейнер з некоректною командою), так і «Закриті», вам необхідно використовувати відразу два фільтри:
Видалення контейнерів згідно конкретної схемою
Ви можете знайти всі контейнери, які відповідають схемі, за допомогою комбінації команд docker ps і grep. Після того як ви знайдете всі потрібні контейнери, ви можете використовувати команду awk. щоб ввести ID відповідних контейнерів в docker rmi. Зверніть увагу, що дані утиліти не входять до стандартного комплекту поставки платформи Docker і не обов'язково доступні в системі:
Зупинка і видалення всіх контейнерів
видалення томів
Видалення одного або декількох конкретних томів - версія Docker 1.9 і старше
Використовуйте команду docker volume ls. щоб знайти ім'я або імена томів, які ви бажаєте видалити. Після цього ви можете видалити один або кілька томів, використовуючи команду docker volume rm:
Видалення підвішених томів - Версія Docker 1.9 і старше
Оскільки томи існують незалежно від контейнерів, то після видалення контейнера тому не видаляється автоматично вместео з ним. У разі якщо в системі є те, що більше не прив'язаний ні до одного з контейнерів, такий тому називається підвішеним. Для того щоб знайти і видалити такі підвішені томи, ви можете використовувати команду docker volume ls з фільтром, який обмежує результати пошуку до зазначених томів. Після того як система видасть потрібний вам список томів, ви можете додати до команди прапорець -q. щоб перенести імена томів в команду docker volume rm:
Видалення контейнера і його томи
Якщо ви створили безіменний тому, його можна видалити разом з контейнером, додавши до команди прапорець -v. Зверніть увагу, що дана команда працює тільки для безіменних томів. Після успішного видалення контейнера відображається його ID. Зверніть увагу, що система при цьому не видає будь-якої інформації щодо видалення томи. Безіменні томи просто мовчки видаляються разом з контейнером. Якщо те має ім'я, він також мовчки залишається в системі.