如何删除正在运行的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/
用docker exec
和rm
删除文件,然后用docker export
导出容器。 当您使用docker import
还原容器时,该文件将不在此处。
当你使用docker commit
你正在创build另一个层,而这个文件将会保留在前一层tarball中,因为Docker图像是build立在层的概念之上的。 当你docker load
并运行图像时,文件将不在那里。
如果你的问题是在tarballs中存在的文件,因为从病毒扫描的误报,然后使用docker export
。