有一些网络源“ http://vpnaccessible.com ”,我需要通过下载一些 RPM 包wget。并且此网络源只能通过 VPN 访问。因此,我使用 Cisco AnyConnect VPN 客户端进入 VPN,然后我想使用wget列出此命令的 Dockerfile 构建映像。
问题是:Docker 无法访问容器内的该域。所以我尝试dns在 中传递选项/etc/docker/daemon.json,但不确定应该传递什么 DNS IP,因为在我的本地有默认 DNS 192.168.0.1, 8.8.8.8。我尝试传入docker0接口的 IP 地址数组,例如172.17.0.1-- 没有成功。
$ cat /etc/docker/daemon.json
{
"insecure-registry": "http://my-insecure-registry.com",
"dns": ["192.168.0.1", "172.17.0.1", "8.8.8.8"]
}
Run Code Online (Sandbox Code Playgroud)
我还尝试添加此网络源,/etc/resolf.conf但当我运行 docker 来构建映像时 - 它被编辑为之前的状态(更改不会保留在那里),我想,这是我的 Cisco VPN 客户端行为 - 不起作用。
还尝试将 Cisco VPN 客户端创建的接口的 IP 地址添加到该地址dns- 没有成功
我还在-- 没有工作dns=dnsmasq中评论过/etc/NetworkManager/NetworkManager.conf
当然,在这些更改之后我将重新启动 docker 和 NetworkManager 服务。
问题:我应该在 Docker 容器和 VPN 之间创建一些桥梁吗?如何解决这个问题?
您可以尝试使用您的主机网络而不是默认的桥接网络。只需添加以下参数:
--network host
Run Code Online (Sandbox Code Playgroud)
或者
--net host
Run Code Online (Sandbox Code Playgroud)
取决于您的 docker 版本。
| 归档时间: |
|
| 查看次数: |
2826 次 |
| 最近记录: |