删除Docker镜像,如何从容器中创建新的?

时间:2017-05-11 12:05:35

标签: docker

我用docker rmi <imgid> -f意外删除了我机器上的所有泊坞窗图像,但幸运的是容器完好无损。当我尝试使用docker commit 575985d354ef ubuntu_16_10:dsktop从容器创建图像时,它会出现以下错误:

Error response from daemon: open /var/lib/docker/image/overlay2/imagedb/content/sha256/f31173ea77a68f70d897dba7623010a0471fa566a106c24a0e616278d37482e9: no such file or directory

如何从容器中创建新图像?

1 个答案:

答案 0 :(得分:2)

您不应该删除正在运行的容器使用的图像:

$ docker run --name nginx-test -d nginx
351eb0e3a96b4375176358581a0afb460f57775382928860af764eb9d5e33b25

$ docker image rm nginx
Error response from daemon: conflict: unable to remove repository reference "nginx" (must force) - container 351eb0e3a96b is using its referenced image 5e69fe4b3c31

因此,如果您设法删除了图像,那么您也会破坏容器,因为docker使用分层文件系统,重用容器RW层下的图像层。这是说不为每个容器复制图像图层的技术方法。

您需要重建图片。现在是考虑使用Dockerfile而不是手动创建容器并提交结果的好时机。