因为尝试使用新的镜像,对原来的镜像进行删除,报错如下:

Error response from daemon: conflict: unable to delete 037c233c605c (must be forced) - image is being used by stopped container 65e94723f0ed

意思就是在删除镜像之前,要先删除对应的docker.因为该image被对应的container引用,所以image删除失败。

[root@vm000949 redis]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
mia/redis                 v2                  a061cf8c12b8        48 minutes ago      210.7 MB
<none>                    <none>              037c233c605c        2 days ago          203.5 MB



主要希望删除这两个imgae,根据image的id到container中找

[root@vm000949 redis]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
1be364973e1d        a061cf8c12b8        "/bin/bash"              42 minutes ago      Exited (137) 5 minutes ago                       thirsty_einstein
65e94723f0ed        037c233c605c        "/bin/sh -c 'yum -y u"   2 days ago          Exited (1) 2 days ago                            gloomy_mestorf



Ok.删除它们

[root@vm000949 redis]# docker rm 65e94723f0ed
65e94723f0ed
[root@vm000949 redis]# docker rm 1be364973e1d
1be364973e1d
 

官方建议的批量删除停止容器使用docker rm $(sudo docker ps -a -q)

千万不要用 docker rm -f $(sudo docker ps -a -q),会删除全部容器的

 

 

 

1、删除所有容器

docker rm `docker ps -a -q`

2、删除所有镜像

docker rmi `docker images -q

 

3、按条件删除镜像

  没有打标签

docker rmi `docker images -q | awk '/^<none>/ { print $3 }'`

  镜像名包含关键字

docker rmi --force `docker images | grep doss-api | awk '{print $3}'`    //其中doss-api为关键字

删除无效docker

docker rm $(docker ps -a -q)

查看最近几行的docker运行日志

journalctl -u docker -n
 

进入容器

docker exec -it 775c7c9ee1e1 /bin/bash  

 

要获取所有容器名称及其IP地址只需一个命令。

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐