Docker可以正常构建容器,但一旦连接Cisco VPN后,容器就无法连接到外部互联网。这不仅是DNS问题,还无法路由到Docker自己网络之外的内容。现在,我可以使用--net=host
在容器中运行来绕过此问题。但是,在使用docker文件构建容器时存在问题。我看不到在那里设置主机的方法。是否有其他地方可以配置docker,使其始终使用“host”作为默认网络?
Docker可以正常构建容器,但一旦连接Cisco VPN后,容器就无法连接到外部互联网。这不仅是DNS问题,还无法路由到Docker自己网络之外的内容。现在,我可以使用--net=host
在容器中运行来绕过此问题。但是,在使用docker文件构建容器时存在问题。我看不到在那里设置主机的方法。是否有其他地方可以配置docker,使其始终使用“host”作为默认网络?
docker build
指令 也有一个--network
参数,您可以使用它来指定应该用于中间容器的网络模式。这个标志具有与 docker run
命令中同名参数 相同的效果和可能的值。
--network (=default)
设置构建期间RUN
指令的网络模式
这将使您能够使用以下命令构建容器:
docker build -t yourimagename --network=host .
Dockerfile是定义如何构建镜像的文件。除了设置默认命令和/或入口点之外,它没有运行时参数。
网络只是运行时关注的问题。如果使用docker run
参数不适合,也许可以使用docker-compose.yml和docker-compose工具或swarm。在这两种情况下,您可以为docker-compose.yml中定义的容器定义网络参数。
network_mode: "host"
我在运行 CentOS 7
的虚拟机上遇到了这个问题。在我升级了一些 yum 包 (containerd,
container-selinux,
docker-ce
和 docker-ce-cli
) 后,问题得到了解决。