我好像在这里遗漏了一些东西 .
所以我在Azure上设置了一个免费帐户 . 使用他们的教程作为参考,我设法设置公钥/私钥,然后我进入服务器 . (这是在门户网站上创建容器资源后完成的) . 进入该服务器后,我成功运行了这个命令:
docker run -d -p 80:80 dallascaley/get-started:part1
我还可以使用docker ps命令验证它是否正在运行 . 我也知道这在我的本地系统上工作正常所以我觉得我非常接近让我的第一个容器化码头工具启动并运行但我似乎无法弄清楚我需要去查看现场的地址应用程序 .
根据堆栈溢出的一篇文章,它应该是以'swarm-master-ip-'开头的资源上列出的DNS名称,但这不起作用,也没有列出IP地址 . 我查看了资源列表中的每条记录,并尝试了所有的DNS和IP地址(大多数都是重复的),但它们似乎都没有 .
有什么建议?
3 回答
根本原因是你在master上创建容器,我们应该在swarm代理上创建容器 . 默认情况下,我们 can't 在swarm master上创建容器 .
一旦我们满足swarm master并运行
docker info
,这样的信息:然后我们 access the docker swarm cluster , set your DOCKER_HOST environment variable 到您为隧道配置的本地端口whit命令
export DOCKER_HOST=:2375
和docker info
:然后我们运行
docker ps
来获取信息:然后我们可以使用 public IP address 或 DNS 的swarm-agent-lb负载均衡器来访问该网站 .
有关设置环境的更多信息,请参阅此link .
我不知道Azure和Azure容器服务,所以我试图根据我从文档中收集的内容来回答这个问题 .
既然你提到
swarm-master-ip
我假设你在容器服务中启动了一个Swarm集群 . https://docs.microsoft.com/en-us/azure/container-service/container-service-docker-swarm上的文档建议为Swarm代理节点自动设置Azure负载均衡器,以便将请求路由到应用程序:如果Azure容器服务门户中没有任何位置,则Azure服务中的某个位置应该是Azure Load Balancer的管理,并为其列出公共DNS .
docker容器绑定到主机端口80.因此,从主机,您应该能够点击正在运行的实例
curl localhost
并获得肯定响应 . 如果可行,那么假设这个azure实例有一个公共IP(绑定到公共网络的网络接口),您可以使用ifconfig
获取您的IP地址,并且从世界上任何地方您都可以从http://12.34.56.78到达您的服务器(无论您的外部接口IP地址是什么) )