如何从某个 Docker 容器中删除数据?

如何从某个 Docker 容器中删除数据?

我想删除一个 Docker 容器和所有相关的图像、卷(不是外部卷)等。

我浏览了整个网络,但我发现的所有内容都是关于删除所有类似的东西,而docker system prune这并不是我想要的。我只是想从某个容器中删除东西。

谢谢

答案1

一个容器只有一个镜像。如果你删除它,并且有未使用的父镜像,docker 将删除所有层:

container_name_or_id=Your_container_name_or_id_here
image_id=$(docker container inspect --format '{{.Image}}' "${container_name_or_id}")
vol_names=$(docker inspect --format '{{range .Mounts}}{{.Name}} {{end}}' "${container_name_or_id}")
docker container rm "${container_name_or_id}"
[ -n "${vol_names}" ] && docker volume rm ${vol_names}
docker image rm "${image_id}"

如果您尝试删除映像,但因为映像正在使用而失败,则这是 docker 为您完成的工作。映像层在映像和容器之间共享,因此它们只会写入磁盘一次。如果您仍有容器或另一个映像使用相同的层,则删除这些共享层会破坏其他映像和容器,docker 会阻止此操作以确保您的安全。

相关内容