Удалить все контейнеры и образы в Docker

Опубликовано: 15 Сентября, 2022

В Docker , если мы вышли из контейнера, не останавливая его, нам нужно остановить их вручную, поскольку он не остановился при выходе. Точно так же для изображений нам нужно удалить их сверху вниз, так как некоторые контейнеры или изображения могут зависеть от базовых изображений, мы можем в любое время загрузить базовое изображение по адресу. Поэтому рекомендуется удалить ненужные или оборванные изображения с текущего компьютера.

Остановить все работающие контейнеры: чтобы остановить контейнеры, которые не завершились. Это может произойти, если команда, используемая в образе Docker, остается запущенной. Команда должна быть завершена, и это, в свою очередь, остановит контейнер. Чтобы остановить контейнер, когда вы не вышли из контейнера, остановив команду, вам нужно выполнить следующую команду.

docker stop $(docker ps -aq)

Эта команда остановит все контейнеры, а именно:

Удалить все контейнеры: чтобы удалить все контейнеры с докер-машины, нам нужно получить идентификаторы всех контейнеров. Мы можем просто получить идентификаторы контейнеров с помощью команды docker ps -aq , а затем с помощью команды docker rm мы можем удалить все контейнеры в докер-машине.

docker rm $(docker ps -aq)

Удалить все остановленные контейнеры: чтобы удалить все контейнеры, которые остановлены/закрыты, мы можем использовать фильтры в аргументе команды ps. Мы не можем напрямую удалить контейнер, если он не остановлен. Мы можем остановить контейнеры, которые не закрыты или запущены, используя аргумент -f для команды ps в докере, опция -f или –filter принимает фильтр, такой как статус = выход или статус = работает или имя и так далее. Мы можем отфильтровать, чтобы остановить определенные контейнеры в соответствии с требованием.

docker ps --filter status=running

После фильтрации запущенного контейнера мы можем использовать команду stop, чтобы остановить эти контейнеры с параметром -q, чтобы отключить числовые идентификаторы, связанные с этими контейнерами.

docker stop $(docker ps --filter status=running -q)

Это остановит все контейнеры, и теперь мы можем удалить контейнеры с докер-машины. Мы даже можем отфильтровать остановленные здесь контейнеры, чтобы удалить только те, чей статус вышел.

docker rm $(docker ps --filter status=exited -q)

Удаление всех образов. Мы можем удалить все образы в док-машине, чтобы удалить ненужный беспорядок и пространство в системе. В любом случае мы можем получить последнюю версию или конкретный версионный образ из реестра докеров или из кеша.

docker rmi $(docker images -q)

Таким образом, мы даже можем удалить все образы с докер-машины с помощью простой команды. К настоящему времени мы смогли остановить и удалить контейнеры с помощью нескольких простых команд.