关于vm虚拟机下docker容器不能访问外网问题的解决(apt-get失败问题)

关于vm虚拟机下docker容器不能访问外网问题的解决(apt-get失败问题)

最近在学习使用docker的过程中发现打开的docker镜像不能访问外网,使用apt-get下载时提示下载失败,如下图所示:
在这里插入图片描述原本以为是DNS配置有问题导致无法解析域名,但是发现修改DNS配置之后仍然无法连接。
最后发现可以在运行容器时更改docker网络连接模式来解决这个问题,即在docker run 指令后加参数 --network=host,host模式的含义是使docker的网络连接模式与宿主机的网络连接模式一致。命令如下所示:

docker run --network=host -i -t ubuntu /bin/bash

在host模式下,docker容器与宿主机共享网络,即可以访问外网和使用apt-get等操作,而docker run默认的容器网络运行模式是桥接模式即bridge模式(该模式下应该也可以访问外网,但是能力不够没有研究出来应该怎样配置,不管怎么配置仍然无法连接外网)。

同样如果想使用Dockerfile和docker bulid来构建docker镜像,如果Dockerfile中有apt-get等网络下载指令并且由于不能连接网络导致构建失败,同样也可以使用–network=host参数。代码如下所示:

docker build --network=host  -t="test/static_web:first" .

你可能感兴趣的:(关于vm虚拟机下docker容器不能访问外网问题的解决(apt-get失败问题))