gpt4 book ai didi

windows - 如何从 docker 容器中的文件到 Windows 容器中的主机

转载 作者:行者123 更新时间:2023-12-02 18:58:41 28 4
gpt4 key购买 nike

我正在学习 docker 。在我的图像构建过程中,我在名为“Config”的文件夹中创建了一个名为“appsettings.json”的文件。我希望容器外的用户可以编辑此文件。最终目标是用户可以停止容器、更改设置文件并使用新的设置文件再次启动容器。
我在 Windows 10 主机上使用 Windows 容器。我首先创建了一个新卷:

docker volume create myvolume
之后我尝试启动我的容器
docker run -v myvolume:C:/app/Config
但是,似乎 -v 参数 删除 Config 文件夹中的所有内容。我知道绑定(bind)挂载会使用主机上的文件夹覆盖容器中的文件夹,但我认为这个命名卷会将 appsettings 文件复制到主机。
我可以做的是首先创建卷,启动容器并将文件从容器内复制到卷中,但这似乎是一个恼人的矫枉过正。
是否有任何更简单的方法或最佳实践来使作为构建过程的一部分产生的文件对主机文件系统可见?

最佳答案

您无法将主机上的文件挂载到卷中。就像评论中已经提到的 Pandey Amit 一样,您必须将主机的 Config 目录直接挂载到容器中。要在 Windows 10 中实现这一点,您必须首先在 docker 设置中授予对文件系统的访问权限。
打开 Docker Dashboard -> Settings -> Resources -> FILE SHARING + 在此处添加目录,该目录应安装在您的 Docker 容器中(仅供引用:包括所有子目录)
我建议重新启动 docker 本身,以记下新设置。
一旦 docker 重新启动,运行你的容器:docker run -v C:/app/Config:/path/to/your/app/Config <image-name>这会将 C:\app\Config 的内容挂载到容器中,现在您应该能够修改 appsettings.json 的内容,即使无需重新启动容器(但这取决于您的应用程序的架构 -> 如果它支持 appsettings.json 的实时重新加载)
更新 :您无法将 docker 镜像中的文件挂载到主机上。如果需要,您可以指示用户在主机上手动创建文件,然后按照上述步骤进行操作。但是,如果您想要实现的唯一目标是允许用户覆盖应用程序设置,我建议您使用环境变量。例如从主机运行具有覆盖设置的容器:docker run -e "foo=bar" <image-name>

关于windows - 如何从 docker 容器中的文件到 Windows 容器中的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62968116/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com