Docker 错误:无法删除 Docker 容器,冲突:无法删除存储库引用。

18 浏览
0 Comments

Docker 错误:无法删除 Docker 容器,冲突:无法删除存储库引用。

我想在Docker中删除容器,但是当我想要删除的时候出现了错误

在删除容器之前,我想查看现有容器的列表

sts@Yudi:~/docker$ sudo docker ps -as
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES                  SIZE
78479ffeba5c        ubuntu              "/bin/bash"         42 hours ago        Exited (0) 42 hours ago                       sharp_wescoff          81 B (virtual 187.7 MB)
0bd2b54678c7        training/webapp     "python app.py"     5 days ago          Exited (0) 5 days ago                         backstabbing_ritchie   0 B (virtual 323.7 MB)
0adbc74a3803        training/webapp     "python app.py"     5 days ago          Exited (143) 5 days ago                       drunk_feynman          0 B (virtual 323.7 MB)

我想删除列表中的一个,即\"training/webapp\",但是出现了错误

sts@Yudi:~/docker$ sudo docker rmi training/webapp
Error response from daemon: conflict: unable to remove repository reference "training/webapp" (must force) - container 0bd2b54678c7 is using its referenced image 54bb4e8718e8
Error: failed to remove images: [training/webapp]

容器是否在镜像中运行?

请帮忙

admin 更改状态以发布 2023年5月25日
0
0 Comments

首先,移除容器名称

$ sudo docker rm backstabbing_ritchie

结果

$ sudo docker rm backstabbing_ritchie
  backstabbing_ritchie

删除要删除的容器上列出的第二部分

$ sudo docker rm drunk_feynman 
  drunk_feynman

其次,移除容器

$ sudo docker rmi training/webapp

结果

$ sudo docker rmi training/webapp  
  Untagged: training/webapp:latest
  Deleted: 54bb4e8718e8600d78a5d7c62208c2f13c8caf0e4fe73d2bc0e474e93659c0b5
  Deleted: f74dd040041eb4c032d3025fe38ea85de8075992bdce6789b694a44b20feb8de
  Deleted: 7cbae69141977b99c44dc6957b032ad50c1379124d62b7d7d05ab7329b42348e
  Deleted: abb991a4ed5e4cde2d9964aec4cccbe0015ba9cc9838b696e7a32e1ddf4a49bd
  Deleted: 1952e3bf3d7e8e6a9b1e23bd4142e3c42ff7f4b7925122189704323593fd54ac
  Deleted: f95ebd363bf27a7546deced7a41a4099334e37a3d2901fa3817e62bb1ade183f
  Deleted: 20dd0c75901396d41a7b64d551ff04952084cc3947e66c67bae35759c80da338
  Deleted: 2505b734adda3720799dde5004302f5edb3f2a2ff71438f6488b530b728ba666
  Deleted: 2ee0b8f351f753f78f1178000ae37616eb5bf241d4ef041b612d58e1fd2aefdc
  Deleted: 2ce633e3e9c9bd9e8fe7ade5984d7656ec3fc3994f05a97d5490190ef95bce8d
  Deleted: 98b15185dba7f85308eb0e21196956bba653cf142b36dc08059b3468a01bf35d
  Deleted: 515565c29c940355ec886c992231c6019a6cffa17ff1d2abdfc844867c9080c5
  Deleted: 2880a3395eded9b748c94d27767e1e202f8d7cb06f1e40e18d1b1c77687aef77

检查容器

  $ sudo docker ps -as
  CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES                  SIZE
  78479ffeba5c        ubuntu              "/bin/bash"         43 hours ago        Exited (0) 43 hours ago                       sharp_wescoff          81 B (virtual 187.7 MB)

0
0 Comments

docker镜像和docker容器之间存在区别。可以查看这个SO问题

简而言之,容器是镜像的一个可运行实例。这就是为什么如果有从该镜像中运行的容器,你就不能删除镜像。 你只需要先删除该容器。

docker ps -a                # Lists containers (and tells you which images they are spun from)
docker images               # Lists images 
docker rm     # Removes a stopped container
docker rm -f  # Forces the removal of a running container (uses SIGKILL)
docker rmi        # Removes an image 
                            # Will fail if there is a running instance of that image i.e. container
docker rmi -f     # Forces removal of image even if it is referenced in multiple repositories, 
                            # i.e. same image id given multiple names/tags 
                            # Will still fail if there is a docker container referencing image

Docker 1.13+更新[自2017年1月起]

在Docker 1.13中,我们重新组合每个命令,使其位于它正在与之交互的逻辑对象下

基本上,以上的命令也可以重写为:

docker container ls -a
docker image ls
docker container rm 
docker image rm 

另外,如果你想删除所有内容,可以使用:

docker system prune -a

警告!这将删除:

  • 所有已停止的容器
  • 至少一个容器没有使用的所有网络
  • 所有未使用的镜像
  • 所有构建缓存
0