- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Windows 10 上运行 docker 时遇到挂载本地卷的问题。这些问题仅在我启用公司 VPN 时出现。
C:\Users\matt> docker run --rm -v d:/tmp:/data alpine ls /data
my_local_test_file.txt
当连接到 VPN 时,我得到这个:
C:\Users\matt> docker run --rm -v d:/tmp:/data alpine ls /data
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: error while creating mount source path '/host_mnt/d/tmp': mkdir /host_mnt/d: file exists.
Docker版本为17.12.0-ce-win47
我认为问题在于 docker 在挂载本地卷时使用网络,而 VPN 通过 VPN 网关路由所有网络流量,因此 docker 看不到本地驱动器。
有解决办法吗?
我知道我可以在 Linux VM 中运行 docker,或者使用 docker 工具箱。这些都不是特别好。
还有其他可能的解决方法吗?
最佳答案
the VPN routes ALL network traffic via the VPN gateway
您可能是对的,在这种情况下,从 Docker 客户端路由到 Docker 守护进程的所有流量也将通过 VPN。当您在 Windows 上使用 Docker CLI 时,它将连接到可通过网络访问的 Docker 守护进程。使用 VPN 可能会破坏此机制。
我认为发生的事情是:
127.0.0.1
或通过 -H
flag or DOCKER_HOST
env variable 设置)。这意味着这个 IP 或主机以某种方式存在于您的 VPN 网络上,并且有一个 Docker 守护进程在监听它(不可否认,这有点奇怪,使用该守护进程可能会有风险)如果这真的发生了,您肯定会看到 docker ps -a
的不同输出, docker images
等,因为您正在连接到不同的守护进程。 (通过你的VPN访问的守护进程实际上是别人所有的,你最好不要使用它!)
你可以做什么:
不要通过您的 VPN 路由 127.0.0.1(或配置为 Docker 主机的任何内容)
要采取的操作将取决于您使用的 VPN 软件,或者您可以直接在 Windows 计算机上添加路由(here is a good article 关于主题)
启用 VPN 时找出您的 IP 并配置守护程序以监听此 IP
ipconfig /all
并找到您的 VPN 使用的接口(interface)及其 IP 地址,例如 10.142.0.12
(您可以比较启用 VPN 之前/之后的输出以识别它是哪个)%programdata%\docker\config\daemon.json
默认情况下,您需要指定 "hosts": ["10.142.0.12", "127.0.0.1"]
例如 ( see docs for details )10.142.0.12
启用 VPN 时,通过设置环境变量 DOCKER_HOST=10.142.0.12
或与客户 docker -H 10.142.0.12 <cmd>
/!\安全说明:这可能会带来安全问题,因为任何知道您在 VPN 网络上的 IP 的人都可以在您的机器上使用守护进程
希望这对您有所帮助。我不是 Windows 专家,因此无法提供有关 Windows 相关问题的详细信息,但如有需要,请随时询问详细信息。
关于启用 VPN 后,Windows 10 上的 docker 无法挂载卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54907381/
我正在尝试创建1-click快捷方式,以便在上小学时玩一些90年代的旧游戏。 我正在尝试将ISO挂载到特定驱动器 运行程序 确保已卸载驱动器,以清除下一个要清除的游戏 我是脚本新手,所以我不确定从哪里
我正在运行 docker compose 命令以在 docker 中运行应用程序。但是,yml 中定义的卷是空的。如果我挂载一个文件,它就可以工作。但是,当我从 Windows 挂载目录时,我可以看到
我有一个双向滚动的无限滚动列表。该列表显示每行 5 个项目的网格,表示一周 7 天中的 5 个工作日。日子是按月剥离的斑马线(甚至月份的颜色略深)。我想将月份标题放在网格左侧的一列中,从该月的第一天或
我在按照 qemu/linaro 教程尝试执行 qemu, https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Vir
我正在尝试挂载 cephfs,密码没问题: mount -t ceph ceph-mon:6789:/docker/mnt/cephfs -o name=admin,secret=admin-pass
我可以将 HDFS 目录(在 Ubuntu 中配置)挂载到 Windows 服务器的驱动器吗? 映射后,例如 H:\--->\home\user1\HDFSCreatedDir ,想使用普通的 Jav
我有一个由 500 个 linux 机器组成的集群,现在需要使用带有绑定(bind)选项的挂载资源(参见 man 8 mount)来支持 chroot jail 。安装点需要在引导后强制执行和维护。我
我在一些代码片段和 Requests documentation 中看到过类似的事情。 : import requests sess = requests.Session() adapter = re
嗨,我正在编写一个安装cgroup的应用程序,如下所示 mount("cgroup", "/sys/fs/cgroup", "tmpfs",0,NULL); 我可以执行此操作,但是我想添加一个检查以了
我希望使用 Powershell 获取 VHD 安装的驱动器号。我可以使用以下 cmdlet 挂载 VHD: Mount-VHD -Path d:/tmp.vhdx 安装工作正常,但是当我尝试获取驱动
我正在编写一个脚本来创建坐骑。我使用的系统命令是: sudo /bin/mount -soft -t smbfs -o username='{username}',password='{passwor
我正在尝试在多个用户之间共享 NFS 安装。我无法让它工作,因为我总是被拒绝访问。我可以挂载共享,但看不到文件。 导出是通过Heartbeat+Pacemaker进行的。我认为这没有什么区别,但这是导
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 9 年前。 此问题似乎与 a specific programming problem, a sof
我最近全新安装了elementary OS,与Windows 8.1双启动。安装完成后,我编辑了eOS的fstab文件,使其自动在/mnt/Windows地址挂载一个ntfs分区。后来我关闭了笔记本电
我正在尝试在装有 Android 2.1 的模拟器上分析 Android 恶意软件。我想在执行可疑应用程序后分析文件权限和指纹。我知道,我可以使用 adb shell 来获取此信息,但我认为在执行例如
在使用 Webpack 和 Vue 编译项目后,当我打开一个使用 Vue 组件的页面时,我得到: [Vue warn]: Failed to mount component: template or
我正在使用 Linux Inotify 来检测程序上的 FS 事件。 当设备挂载到监控目录时如何通知我? 最佳答案 我不认为你可以用 inotify 来做到这一点。这是方法: 阅读uevents fr
有几篇文章对理解 Docker 的卷和数据管理非常有帮助。这两个尤其出色: http://container-solutions.com/understanding-volumes-docker/ h
我正在使用 mount -o bind /some/directory/here /foo/bar 我想用 bash 脚本检查 /foo/bar,看看它是否已经挂载?如果不是,则调用上面的 mount
我是一名优秀的程序员,十分优秀!