docker build在云虚拟机上失败

Den*_*sky 11 cloud ubuntu containers azure docker

我在Azure VM中运行了一个Ubuntu 16.04(Xenial).我按照说明安装了Docker,一切看起来都很好,花花公子.

我触发时需要做的一件事docker run就是传递--net=host,这允许我apt-get update在容器内运行和其他依赖于互联网的命令.

当我尝试docker build基于现有的Ubuntu映像触发时出现问题.它失败:

在此输入图像描述

这里的问题是没有办法传递--net=host给build命令.我看到Docker GitHub上存在问题(#20987,#10324),但没有明确的解决方案.

有一个堆栈溢出现有的答案,涵盖我想要的场景,但这并不云VM内运行.

对可能发生的事情的任何想法?

更新1:

这是docker version输出:

Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 22:11:10 2016
 OS/Arch:      linux/amd64
Run Code Online (Sandbox Code Playgroud)

更新2:

以下是来自的输出docker network ls:

NETWORK ID          NAME                DRIVER              SCOPE
aa69fa066700        bridge              bridge              local               
1bd082a62ab3        host                host                local               
629eacc3b77e        none                null                local   
Run Code Online (Sandbox Code Playgroud)

Gre*_*ray 0

我无法让 Docker 容器访问互联网?使用sudo systemctl restart docker可能会有所帮助,或者启用net.ipv4.ip_forward = 1禁用防火墙

此外,您可能需要更新虚拟机上 /etc/resolv.conf 中的dns 服务器

  • 您看到的问题表明您的桥接网络无法连接到外界,这可能会在将来导致其他问题。如果您不打算在 docker 中使用桥接网络,您可以尝试使用“docker network rm”删除它,但网络隔离是人们通常使用 docker 容器的一个重要原因。因此,--net=host 参数可能不适用于所有 docker 命令。 (2认同)