在容器和主机之间共享文件

3

我正在运行一个带有卷 /var/my_folder 的 Docker 容器。那里的数据是持久化的:当我关闭容器时,数据仍然存在。 但是我也希望在主机上可以访问这些数据,因为我想使用一个未安装在容器中的 IDE 来编写代码。

那么如何在我的主机上拥有一个 /var/my_folder 文件夹,并且在我的容器中也可用呢?

我正在使用 Linux Mint。

1个回答

4

链接: 管理容器中的数据

你需要的基本运行命令是...

docker run -dt --name containerName -v /path/on/host:/path/in/container

问题在于挂载卷会覆盖容器中的卷(与您的目的有关)。
克服这个问题的最佳方法是在挂载之后(容器内部),创建您想要共享的文件。
ENTRYPOINT 命令在 docker run 时执行。因此,如果您的文件是作为入口点脚本的一部分生成的而不是构建的一部分,则它们一旦挂载就可以从主机上访问。
因此,解决方案是在 ENTRYPOINT 脚本中运行创建文件的命令。
如果这样做无法成功,在构建期间将文件复制到另一个目录中,然后在 ENTRYPOINT 脚本中再次复制它们。

谢谢您的回答!但是当我的卷包含一个git仓库时,我就不需要处理这个问题了,对吗? - hideous
附言:在执行您的命令时,我收到了以下消息:docker: "run" 需要至少一个参数。请参阅 'docker run --help'。 - hideous
抱歉,我认为名称必须是最后一个参数。 - danday74
如果存储库在您的容器内部,则在ENTRYPOINT脚本中使用git clone命令进行克隆,如果存储库在主机上,则它将正常工作。 - danday74

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接