Попередня умова: Докер
в Докер , якщо ми вийшли з контейнера, не зупинивши його, нам потрібно зупинити їх вручну, оскільки він не зупинився під час виходу. Так само для зображень нам потрібно видалити їх зверху вниз, оскільки деякі контейнери або зображення можуть залежати від базових зображень, ми можемо будь-коли завантажити базове зображення за адресою. Тому доцільно видалити непотрібні або завислі зображення з поточної машини.
Як видалити зображення в Docker?
Видалити зображення
Щоб видалити зображення за ImageId/Name, ми можемо використати таку команду. Щоб дізнатися більше про те, як створити образ докера за допомогою Dockerfile, перегляньте Концепцію Dockerfile.
docker rmi>
Примусово видалити зображення
Щоб примусово видалити зображення докера за ідентифікатором зображення/ім’ям, ми можемо використати таку команду.
docker rmi -f>
Примітка: Ми не можемо видалити зображення силою чи звичайним способом, коли контейнер працює.
Висячі зображення
Висячі зображення – це зображення, які не зіставляються ні з репозиторієм, ні з тегом. Команда, яка використовується, полягає в тому, щоб видалити звисаючі зображення. Щоб дізнатися більше про теги зображень Docker, перегляньте теги зображень Docker.
docker image prune>
Видалення всіх зображень
Ми можемо видалити всі зображення в докер-машині, щоб видалити небажаний безлад і простір у системі. У будь-якому випадку ми можемо отримати останню версію або певне версійне зображення з реєстру докерів або з кешу.
docker rmi $(docker images -q)>

Як видалити контейнери в Docker
Перед видаленням контейнерів нам потрібно спершу зупинити контейнер, для цього ми використовуємо команду.
docker stop>
Різниця між Docker Stop і Docker Kill
Docker stop спочатку надішле сигнал SIGTERM, а потім завершить процес сигналом SIGKILL і пільговим періодом. Коли Docker kill надсилає SIGKILL, він негайно завершує процес.
- Зупинити всі запущені контейнери: Щоб зупинити контейнери, які не вийшли. Це може статися, коли команда, використана в образі Docker, залишається запущеною. Команда повинна бути завершена, і це, в свою чергу, призведе до зупинки контейнера. Щоб зупинити контейнер, коли ви не вийшли з контейнера, зупинивши команду, вам потрібно виконати таку команду.
docker stop $(docker ps -aq)>
- Видалити контейнер: Якщо контейнер зупинено, ми можемо використати наступну команду, щоб видалити контейнер.
docker rm>
- Примусово видалити контейнер: ми можемо примусово видалити контейнери під час їх роботи, не зупиняючи їх, використовуючи команду нижче.
docker rm -f>

Видаліть усі контейнери
Щоб видалити всі контейнери з докерної машини, нам потрібно отримати ідентифікатори всіх контейнерів. Ми можемо просто отримати ідентифікатори контейнерів за допомогою команди докер ps -aq , то за допомогою команди docker rm ми можемо видалити всі контейнери в докер-машині.
docker rm $(docker ps -aq)>

Видаліть усі зупинені контейнери
Щоб видалити всі контейнери, які зупинено/завершено, ми можемо використати фільтри в аргументі команди ps. Ми не можемо безпосередньо видалити контейнер, якщо його не зупинено. Ми можемо зупинити контейнери, які не вийшли або запущені, використовуючи аргумент -f для команди ps у докері, опція -f або –filter приймає фільтр на зразок status=exited або status=running або name тощо. Ми можемо відфільтрувати, щоб зупинити конкретні контейнери відповідно до вимог.
docker rm $(docker ps -aq --filter status='exited')>
Після фільтрації контейнера, який працює, ми можемо використати команду stop, щоб зупинити ці контейнери за допомогою -q, щоб вимкнути цифрові ідентифікатори, пов’язані з цими контейнерами.
docker stop $(docker ps --filter status=running -q)>
Це зупинить усі контейнери, і тепер ми можемо видалити контейнери з докер-машини. Ми навіть можемо відфільтрувати контейнери, які тут зупинено, щоб видалити лише ті, статус яких вийшов.
docker rm $(docker ps --filter status=exited -q)>

- Наведена нижче команда видалила всі контейнери, які перебувають у існуючому стані. Тобто контейнери зупинилися.
docker container prune>
