gpt4 book ai didi

azure - docker 构建在云虚拟机上失败

转载 作者:IT老高 更新时间:2023-10-28 12:46:51 26 4
gpt4 key购买 nike

我有一个在 Azure VM 内运行的 Ubuntu 16.04 (Xenial)。我已经按照说明安装了 Docker,一切看起来都很好。

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

当我尝试基于现有 Ubuntu 镜像触发 docker build 时,问题就出现了。它失败了:

enter image description here

这里的问题是无法将 --net=host 传递给构建命令。我发现 Docker GitHub 上存在 Unresolved 问题( #20987#10324 ),但没有明确的解决方案。

有一个existing answer on Stack Overflow这涵盖了我想要的场景,但这在云虚拟机中不起作用。

对可能发生的事情有什么想法吗?

更新1:

这是docker版本输出:

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

更新2:

这是 docker network ls 的输出:

NETWORK ID          NAME                DRIVER              SCOPE
aa69fa066700 bridge bridge local
1bd082a62ab3 host host local
629eacc3b77e none null local

最佳答案

另一种方法是尝试让 docker-machine 为您配置虚拟机,看看是否有效。有一个provider for Azure ,因此您应该能够在本地 Docker 客户端(Windows 或 Linux)上设置您的订阅 ID 和 follow the instructions获取使用 Docker 配置的新 VM,它还将设置本地环境变量以与 Docker VM 实例远程通信。设置完成后,在本地运行 docker ps 或 docker run 将运行命令,就像在虚拟机上运行它们一样。示例:

#Name at end should be all lower case or it will fail.
docker-machine create --driver azure --azure-subscription-id <omitted> --azure-image canonical:ubuntuserver:16.04.0-LTS:16.04.201608150 --azure-size Standard_A0 azureubuntu
#Partial output, see docker-machine resource group in Azure portal
Running pre-create checks...
(azureubuntu) Completed machine pre-create checks.
Creating machine...
(azureubuntu) Querying existing resource group. name="docker-machine"
(azureubuntu) Resource group "docker-machine" already exists.
(azureubuntu) Configuring availability set. name="docker-machine"
(azureubuntu) Configuring network security group. location="westus" name="azureubuntu-firewall"
(azureubuntu) Querying if virtual network already exists. name="docker-machine-vnet" location="westus"
(azureubuntu) Configuring subnet. vnet="docker-machine-vnet" cidr="192.168.0.0/16" name="docker-machine"
(azureubuntu) Creating public IP address. name="azureubuntu-ip" static=false
(azureubuntu) Creating network interface. name="azureubuntu-nic"
(azureubuntu) Creating virtual machine. osImage="canonical:ubuntuserver:16.04.0-LTS:16.04.201608150" name="azureubuntu" location="westus" size="Standard_A0" username="docker-user"
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with ubuntu(systemd)...
Installing Docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env azureubuntu

#Set environment using PowerShell (or login to the new VM) and see containers on remote host
docker-machine env azureubuntu | Invoke-Expression
docker info
docker network inspect bridge

#Build a local docker project using the remote VM
docker build MyProject
docker images

#To clean up the Azure resources for a machine (you can create multiple, also check docker-machine resource group in Azure portal)
docker-machine rm azureubuntu

据我所知,效果很好。我能够在 Azure VM 上使用 apt-get 构建 debian:wheezy DockerFile,没有任何问题。这应该允许容器使用默认桥接网络而不是主机网络运行。

关于azure - docker 构建在云虚拟机上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38950200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com