Jim*_*Jim 13 macos docker docker-image docker-container
我的机器中有多个停止的容器和图像。
我想清理并删除所有容器:
docker ps -a什么也不返回。
我运行docker rmi $(docker images -q)删除缓存的图像,但得到:
来自守护程序的错误响应:冲突:无法删除...(必须强制执行)-在多个存储库中引用了图像
它在说什么仓库?
hus*_*ns8 20
要强制删除涉及多个存储库的 Docker 镜像,只需使用以下命令:
sudo docker rmi -f image_id
Run Code Online (Sandbox Code Playgroud)
Gab*_*iel 19
You cannot remove images having multiple repositories without the force modifier, see Docker docs for more info.
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
repository/image-name tag a8e6fa672e89 10 days ago 344MB
repository2/image-name tag a8e6fa672e89 10 days ago 344MB
Run Code Online (Sandbox Code Playgroud)
If you want to do it manually, instead of using the image id to remove the images, you must remove the repository/tag that you don't need using image names:
docker rmi a8e6fa672e89
Error response from daemon: conflict: unable to delete a8e6fa672e89 (must be forced) - image is referenced in multiple repositories
Run Code Online (Sandbox Code Playgroud)
Remove the repository/tag you don't need:
docker rmi repository/image-name:tag
Untagged: repository/image-name:tag
Untagged: repository/image-name:tag@sha256:64b5a02e2bb3ee4d4b7c0982e8e2e5eb68bdfd0fb096fce22b6c030dafb53a33
Run Code Online (Sandbox Code Playgroud)
(Repeat last step until only one repository/tag remains) And now you will be able to remove the image:
docker rmi a8e6fa672e89
Untagged: repository2/image-name:tag
Deleted: sha256:a8e6fa672e89b399bd3ac52b96c031e6816a69191d1fd7e6a1839fd643e3c751
Deleted: sha256:9861dd7b5783217515f571fdcfa6729e1e38af3ae9c971026e5a317b12fc5905
Run Code Online (Sandbox Code Playgroud)
If you use the -f flag and specify the image’s short or long ID, then rmi untags and removes all images that match the specified ID.
Her*_*eri 11
The "repositories" it is talking about is part of the first column of a docker images:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
repository/image-name tag a8e6fa672e89 10 days ago 344MB
repository2/image-name tag a8e6fa672e89 10 days ago 344MB
Run Code Online (Sandbox Code Playgroud)
(I take the samples which Gabriel showed in his answer)
Here we have two repositories: "repository" and "repository2". As you also can see, both images have the same IMAGE ID.
A docker images -q lists all available IMAGE ID's. Thus if you want to remove an IMAGE ID which is referenced by two images you get the error that you have mentioned.
Solution: You can remove the image by its name instead of its ID:
docker rmi repository/image-name:tag
Run Code Online (Sandbox Code Playgroud)
根本问题是您试图删除该图像,但该图像被标记为 Tarun Banda 所写的。因此,不要通过 id 删除图像,而是通过其标签删除图像。这将取消图像的标记,然后将其删除。
这是清理旧容器的示例:
docker images | grep '3 weeks ago' | awk '{print $1 ":" $2}' | xargs -n 1 docker rmi
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以清理所有容器。首先,您需要使用以下命令停止所有容器:docker stop $(docker ps -aq)。最后,使用以下命令删除所有容器docker rm $(docker ps -aq):您可以通过一个命令完成这一切docker rm $(docker stop $(docker ps -aq))。
如果要删除所有容器数据:
docker container prune
docker network prune
docker system prune
docker volume prune
docker builder prune
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7955 次 |
| 最近记录: |