在 "docker commit" 之后无法将文件保存在 docker 图像中

Could not save file in the docker image after "docker commit"

我使用命令:

docker run -it -v /myhostpath:/dockerpath $container

所以我得到了从主机目录到 docker 目录的映射,我确实看到了两个目录共享的文件。

之后,我退出容器,提交并保存图像。 但是,当我再次打开容器时,共享文件没有了。

谁能告诉我发生了什么事?谢谢!

-v选项就像使用mount命令挂载外部文件系统一样。使用 -v 映射到容器中的目录不在容器的文件系统中。因此,将容器文件系统中的更改提交到新映像不包括这些外部文件。

如果你想复制一些外部文件到容器,你需要使用-v临时挂载目录,然后使用cp命令复制到本地目录容器,然后提交。

或者,您可以在 Dockerfile

中使用 ADDCOPY 包含文件

如果外部文件可以被认为是容器的基本输入或输出,那么它与容器是分开的并且可能在其他地方需要(日志文件、计算结果、数据库数据等),或者应该保密,那么你不应该将它们复制到容器中。相反,继续使用 -v 将该目录挂载到容器上。