Docker 的 Azure VM 无法连接

Azure VM with Docker failing to connect

我正在尝试编写 Powershell 脚本以在安装了 Docker 的 Azure 中创建 VM。从我读过的所有内容来看,我应该能够做到以下几点:

$image = "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_3-LTS-amd64-server-20150908-en-us-30GB"

azure vm docker create -e 22 -l 'North Europe' --docker-cert-dir dockercert --vm-size Small <myvmname> $image $userName $password

docker --tls -H tcp://<myvmname>.cloudapp.net:4243 info

虚拟机创建有效,但是 docker 命令失败并出现以下错误:

An error occurred trying to connect: Get https://myvmname.cloudapp.net:4243/v1.20/info: dial tcp 40.127.169.184:4243: ConnectEx tcp: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

我找到的一些文章提到了端口 2376 - 但这也不起作用。

登录到 Azure 门户并查看创建的 VM - Docker VM 扩展似乎未添加,并且除了默认的 SSH 端点外没有其他端点。我原以为这些是由 azure vm docker create 命令创建的。虽然那一点我可能是错的。

这里有几篇我看过的示例文章:

但是,还有很多其他文章说同样的话。

有谁知道我做错了什么吗?

我知道你没有做错任何事。我的 azurecli-dockerhost 连接已经工作了几个月,最近失败了。我使用 "azure vm docker create" 重新创建了我的 docker 主机,但它不再工作了。

我认为这是 azure-docker 团队必须修复的错误。

目前我的解决方案是:

1) 在不使用 Azure docker 扩展的情况下启动 Ubuntu VM

2) SSH 进入 VM 并使用以下行安装 docker:

sudo su; apt-get -y update
apt-get install linux-image-extra-$(uname -r)
modprobe aufs
curl -sSL https://get.docker.com/ | sh

3) 运行 docker 直接在此 VM 中,而不依赖 "client",尤其是 azure cli。

如果您坚持使用 docker 客户端方法,我的替代建议是更新您的 azure-cli 并再次尝试 'azure vm docker create'。让我知道进展如何。

sudo su
apt-get update; apt-get -y install nodejs-legacy; apt-get -y install npm; npm install azure-cli --global

要为我的问题添加额外的答案,事实证明您可以使用 docker create 命令来做同样的事情...

docker-machine create $vmname --driver azure --azure-publish-settings-file MySubscription.publishsettings

这个方法对我有用。