DNS Swarm 代理无法在 Azure 上运行

DNS Swarm agent not working on Azure

1- 我在 azure 中创建了一个新的容器服务。

2 - 按照门户一步一步创建。

3 - 我没有更改任何服务、虚拟机、平衡、主控和代理的任何配置。

4 - 我可以正常连接 PuTTY。

5 - 我可以通过将端口 80 重定向到端口 80 来打开隧道。

按照这个tutorial,我可以把容器放到运行::

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
ffe6a1c890e4        yeasy/simple-web    "/bin/sh -c 'pytho..."   31 minutes ago      Up 31 minutes       0.0.0.0:80->80/tcp   vibrant_morse

如果我从浏览器访问本地主机,我可以到达容器的端口 80 并看到与教程相同的 "Real Visit Results" 页面。

但是在 tutorial 中它说如果我使用负载均衡器的 DNS 我应该看到结果,这是我的问题,我无法通过 DNS 访问容器,我只能得到 timeout

加固,我创建了一个容器服务,没有更改任何配置,只是用PuTTY进入,把容器放到运行。

根据你的描述,好像是you don't set your DOCKER_HOST environment variable to the local port configured for the tunnel。当你 ssh 到你的主虚拟机时,你需要执行下面的命令:

export DOCKER_HOST=:2375

运行 Docker 命令隧道到 Docker Swarm 集群。例如:

docker info

如果你没有在隧道上设置环境变量,docker contanier 是在 master VM 上创建的,所以你无法使用代理 Public IP 获取 Web。

另外,您不能设置环境变量,但在执行docker命令时需要指向主机。更多信息请参考这个link