无法与 Docker 中的容器共享本地 Windows 路径
Posted
技术标签:
【中文标题】无法与 Docker 中的容器共享本地 Windows 路径【英文标题】:Unable to share a local windows path with a container in Docker 【发布时间】:2019-07-03 22:22:24 【问题描述】:Docker 新手,在 Win 10 x64 上运行 Docker Toolbox
。
我正在尝试与容器(在本例中为 Portainer)共享(装载)本地 Windows 路径,以便容器将其所有配置设置保存在我的 PC 本地,以便我可以随时升级容器同时仍然保持其配置持久性。
我已经阅读/观看了许多教程、参考资料、文档、视频等,我正在尝试做他们似乎解释要做的事情,但是当我创建安装了本地路径的容器然后进入容器,设置一些配置设置,然后查看我挂载的windows路径,那里没有保存任何东西。
不确定是什么问题?
这是我正在运行的 docker cmd 示例:
docker run -it -v /c/Servers/DockerConfigs/Portainer:/data :P portainer/portainer
据我了解,容器中 /data
文件夹中存储的任何内容也应该保存到主机 C:\Servers\DockerConfigs\Portainer
上的 Windows 文件夹中,但没有任何内容保存到该 Windows 文件夹中...
我还尝试将主机上的一些文件复制到该 windows 文件夹,然后在容器中查看 /data
文件夹以查看它们是否使用 ls -a
显示,但同样,那里没有任何显示.. .
有人知道我错过了什么吗?
【问题讨论】:
【参考方案1】:感谢这个帖子,终于找到了答案:How to mount a host directory in a Docker container
事实证明,最简单的方法(在 Windows 上)是确保从 Users
目录挂载文件夹,并在启动容器时使用 --mount
命令。
即
docker run -P -it --name organizr --mount src="/c/Users/My PC/AppData/Roaming/DockerConfigs/Organizr",dst=/config,type=bind organizrtools/organizr-v2:latest
【讨论】:
【参考方案2】:确保 C 盘已启用共享:Right click on the whale icon -> Settings -> Shared Drives
。还可以考虑使用更新的 Docker Desktop for Windows。
【讨论】:
谢谢,不幸的是,当我在我的任何一台 Win 10 机器上启用 Hyper-V 时,我最终会进入引导循环,所以至少现在我无法使用 Docker Toolbox。【参考方案3】:我也有同样的问题。所以,我做了以下步骤。
首先,拉取windowsserver容器(你可以根据需要拉取任何容器)。
进入 docker 桌面,选择图片。
您可以看到您提取的图像。选择运行,然后更改设置。也就是说,设置一个容器名称,一个你要挂载的机器中的路径,容器路径(为此,我简单地给了 C:\data)
然后保存设置
转到 docker 桌面中的容器/应用程序。
您可以看到您创建的新容器名称。
*打开那个容器的cli >-(这个符号)
然后会打开一个路径为 C:\ 的 cli。*键入 目录。您可以看到那里创建的文件夹数据。
现在,在本地机器的mounted文件夹中添加一些文件,看看是否反映在容器的data文件夹中。
【讨论】:
【参考方案4】:停止做任何事情并这样做:
-
卸载 Docker Desktop(稳定版)
重启 Windows 机器
安装 Docker 桌面(边缘)
问题已解决
【讨论】:
为什么?这是一个毫无意义的答案,除非您说明为什么它不能在稳定版本上运行。以上是关于无法与 Docker 中的容器共享本地 Windows 路径的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:libgthread-2.0.so.0:无法打开共享对象文件:使用 Docker 容器导入 cv2 时没有此类文件或目录