如何删除正在运行的Docker镜像中的文件,然后保存镜像以便稍后加载?

我试图从一个泊坞窗图像中删除一个文件,然后导出泊坞窗图像在另一台服务器上使用。

我已经完成了以下步骤:

docker exec -it <name> sh rm <file> exit docker commit <id> <newImageName> docker save <newImageName> > newImageName.tar 

当我解压newImageName.tar时,它仍然包含我在上面的一个图层中的文件。

如何从正在运行的图像中删除文件并保存该图像?

谢谢

所以应该是

docker exec -it container_id_or_name sh

现在你删除一个文件

rm file

然后你离开容器

ctrl d

要么

exit

现在你承诺

docker commit container_id_or_name myuser:myimage

您保存

docker save myuser:myimage > newImageName.tar

看文档

https://docs.docker.com/engine/reference/commandline/commit/

https://docs.docker.com/engine/reference/commandline/save/

docker execrm删除文件,然后用docker export导出容器。 当您使用docker import还原容器时,该文件将不在此处。

当你使用docker commit你正在创build另一个层,而这个文件将会保留在前一层tarball中,因为Docker图像是build立在层的概念之上的。 当你docker load并运行图像时,文件将不在那里。

如果你的问题是在tarballs中存在的文件,因为从病毒扫描的误报,然后使用docker export