tag - docker репозиторий




Как удалить изображение в Docker? (11)

Я запускаю Docker под Vagrant под OS X 10.8.4 (Mountain Lion), и всякий раз, когда я пытаюсь удалить сохраненное изображение, я получаю сообщение об ошибке:

$ docker rmi some-image-id
2013/07/15 hh:mm:ss unexpected JSON input

Согласно справки rmi , правильным синтаксисом является docker rmi IMAGE [IMAGE...] , и я не уверен, что с этим делать.

Как удалить изображение?

$ docker version
Client version: 0.4.8
Server version: 0.4.8
Go version: go1.1

$docker info
Containers: 1
Images: 3

Интересно, что когда я запускаю docker ps , никаких контейнеров вообще не появляется. Запуск docker images показывает четыре (4) base изображения и одно (1) изображение node .


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

docker rm $(docker ps -a -q)

Удалить все изображения докеров

docker rmi $(docker images -q)

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

  1. Чтобы удалить конкретный контейнер

    docker rm CONTAINER_ID CONTAINER_ID
    
    • Для одного изображения

      docker rm  70c0e19168cf
      
    • Для нескольких изображений

      docker rm  70c0e19168cf c2ce80b62174 
      
  2. Удалить выведенные контейнеры

    docker ps -a -f status=exited
    
  3. Удалить все контейнеры

    docker ps -q -a | xargs docker rm
    

Удаление изображений

docker rmi IMAGE_ID
  1. Удаление определенных изображений

    • для одного изображения

      docker rmi ubuntu
      
    • для нескольких изображений

      docker rmi ubuntu alpine
      
  2. Удаление оборванных изображений
    Висячие изображения - это слои, которые не имеют отношения к каким-либо помеченным изображениям, поскольку изображения Докера состоят из нескольких изображений.

    docker rmi -f $(docker images -f dangling=true -q)
    
  3. Удалить все изображения Docker

    docker rmi -f $(docker images -a -q)
    

Удаление томов

Чтобы указать объемы, выполните docker volume ls

  1. Удалите определенный объем

    docker volume rm VOLUME_NAME
    
  2. Удалить оборванные тома

    docker volume rm $(docker volume ls -f dangling=true -q)
    
  3. Удалить контейнер и его объемы

    docker rm -v CONTAINER_NAME
    

docker rmi 91c95931e552

Error response from daemon: Conflict, cannot delete 91c95931e552 because the container 76068d66b290 is using it, use -f to force
FATA[0000] Error: failed to remove one or more images  

найти идентификатор контейнера,

# docker ps -a

# docker rm  daf644660736 

Вот сценарий оболочки для удаления помеченного (именованного) изображения и его контейнеров. Сохранить как docker-rmi и запустить с помощью 'docker-rmi my-image-name'

#!/bin/bash

IMAGE=$1

if [ "$IMAGE" == "" ] ; then
  echo "Missing image argument"
  exit 2
fi

docker ps -qa -f "ancestor=$IMAGE" | xargs docker rm
docker rmi $IMAGE

Для меня все работало нормально:

> docker images
REPOSITORY   TAG           IMAGE ID          CREATED             SIZE
debian       jessie        86baf4e8cde9      3 weeks ago         123MB
ubuntu       yakkety       7d3f705d307c      3 weeks ago         107MB
alpine       3.5           074d602a59d7      7 weeks ago         3.99MB

Затем перейдите и удалите изображение, запустив некоторые из них:

> docker rmi debian:jessie
> docker rmi ubuntu:yakkety
> docker rmi alipine:3.5

Ниже перечислены некоторые способы удаления изображений / контейнеров докеров:

Удалить одно изображение

docker rmi image_name:version/image-id

Удалить все изображения

docker rmi $(docker images -qf "dangling=true")

Убейте контейнеры и удалите их:

docker rm $(docker kill $(docker ps -aq))

Примечание. Заменить kill с stop для изящного выключения

Удалите все изображения, кроме "my-image"

Используйте grep для удаления всех, кроме my-image и ubuntu

docker rmi $(docker images | grep -v 'ubuntu\|my-image' | awk {'print $3'})

Или (без awk)

docker rmi $(docker images --quiet | grep -v $(docker images --quiet ubuntu:my-image))


Попробуйте docker rmi node . Это должно сработать.

Видеть все созданные контейнеры так же просто, как docker ps -a .

Чтобы удалить все существующие контейнеры (а не изображения!), docker rm $(docker ps -aq)


Прежде всего, мы должны остановить и удалить контейнеры-докеры, которые прикреплены с док-образным изображением, которое мы собираемся удалить.

Поэтому для этого сначала

  • docker stop container-id - Чтобы остановить запущенный контейнер
  • docker rm container-id - удаление или удаление контейнера

затем,

  • docker rmi image-id - удаление / удаление изображения

Удалите все из них, используя

Шаг 1: Убейте все контейнеры

for i in `sudo docker ps -a | awk '{ print $1 }'`; do sudo docker kill $i ; done

Шаг 2: сначала RM

for i in `sudo docker ps -a | awk '{ print $1 }'`; do sudo docker rm $i ; done

Шаг 3: Удалите изображения с помощью силы

for i in `sudo docker images | awk '{ print $3}'`; do  sudo docker rmi --force $i ; done

Используйте шаг 1, если вы получаете сообщение об ошибке, которое может быть удалено из-за зависимостей с детьми


Чтобы удалить изображение из докера, используя идентификатор изображения

  1. Получить список всех изображений

    docker images
    
  2. Определите идентификатор изображения для изображения, которое вы хотите удалить, например:

    REPOSITORY     TAG     IMAGE ID        CREATED        VIRTUAL SIZE
    kweku360/java  latest  08d3a9b8e166    2 weeks ago         5.733 GB`
    
  3. Наконец, удалите изображение с использованием идентификатора изображения (требуется только первые три цифры)

    docker rmi 08d
    

docker rm container_name

docker rmi image_name

docker help

rm Удалить один или несколько контейнеров

rmi Удалить одно или несколько изображений





docker