我如何查看我刚刚在Azure上设置的dockerized容器应用程序?

我似乎在这里失去了一些东西。

所以我在Azure上build立了一个免费账户。 使用他们的教程作为参考,我设法得到公钥/私钥设置和我ssh'd到服务器。 (这是在门户上创build容器资源之后完成的)。 一旦进入该服务器,我就成功运行了这个命令:

docker run -d -p 80:80 dallascaley/get-started:part1 

我也可以使用docker ps命令validation它是否正在运行。 我也知道这对我的本地系统工作正常,所以我觉得我非常接近让我的第一个集装箱docker应用程序运行,但我似乎无法弄清楚什么地址我需要去查看生活应用程序。

根据堆栈溢出的一个post,它应该是以“swarm-master-ip-”开头但是不起作用的资源上列出的DNS名称,也不是列出的IP地址。 我查看了我的资源列表中的每个logging,并尝试了所有的DNS和IP地址(其中大部分是重复的),而且没有一个可以工作。

有什么build议么?

根本原因,你创build你的容器在主人,我们应该创build容器上的代理。 默认情况下,我们不能在swarm master上创build容器。

一旦我们满足swarm master并运行docker info ,这样的信息:

 root@swarm-master-784816DA-0:~# docker info Containers: 2 Running: 2 Paused: 0 Stopped: 0 Images: 2 Server Version: 17.06.0-ce Storage Driver: overlay Backing Filesystem: extfs Supports d_type: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: cfb82a876ecc11b5ca0977d1733adbe58599088a runc version: 2d41c047c83e09a6d61d464906feb2a2f3c52aa4 init version: 949e6fa Security Options: apparmor Kernel Version: 3.19.0-65-generic Operating System: Ubuntu 14.04.4 LTS OSType: linux Architecture: x86_64 CPUs: 2 Total Memory: 6.805GiB Name: swarm-master-784816DA-0 ID: IKDF:RSRH:CXT2:M6ER:KI4R:DYAR:2CZH:FFQX:MCRT:4NZB:CBS4:LNRK Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Registry: https://index.docker.io/v1/ Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false WARNING: No swap limit support 

然后我们访问 docker swarm集群设置你的DOCKER_HOST环境variables为你为隧道configuration的本地端口,这个命令export DOCKER_HOST=:2375export DOCKER_HOST=:2375 docker info

 root@swarm-master-784816DA-0:~# export DOCKER_HOST=:2375 root@swarm-master-784816DA-0:~# docker info Containers: 0 Running: 0 Paused: 0 Stopped: 0 Images: 0 Role: primary Strategy: spread Filters: health, port, dependency, affinity, constraint Nodes: 1 swarm-agent-784816DA000001: 10.0.0.5:2375 └ Status: Healthy └ Containers: 0 └ Reserved CPUs: 0 / 2 └ Reserved Memory: 0 B / 7.145 GiB └ Labels: executiondriver=<not supported>, kernelversion=3.19.0-65-generic, operatingsystem=Ubuntu 14.04.4 LTS, storagedriver=overlay └ Error: (none) └ UpdatedAt: 2017-07-03T01:57:18Z Plugins: Volume: Network: Log: Swarm: NodeID: Is Manager: false Node Address: Kernel Version: 3.19.0-65-generic Operating System: linux Architecture: amd64 CPUs: 2 Total Memory: 7.145GiB Name: 2076070ddfd8 Docker Root Dir: Debug Mode (client): false Debug Mode (server): false Experimental: false Live Restore Enabled: false WARNING: No kernel memory limit support 

然后我们运行docker ps来获取信息:

 root@swarm-master-784816DA-0:~# docker run -d -p 80:80 yeasy/simple-web 0226e9ab3cadf20701f64c02f1f4a42f5fd57fd297722f268db47db1b124ab5c root@swarm-master-784816DA-0:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0226e9ab3cad yeasy/simple-web "/bin/sh -c 'pytho..." 6 seconds ago Up 5 seconds 10.0.0.5:80->80/tcp swarm-agent-784816DA000001/stupefied_snyder 

然后,我们可以使用swarm-agent-lb负载均衡器的公共IP地址DNS来访问网站。

有关设置环境的更多信息,请参阅此链接 。

我不知道Azure和Azure容器服务,所以我试图根据我可以从文档中收集的信息来回答这个问题。

既然你提到了swarm-master-ip我假设你在容器服务中启动了一个Swarm集群。 https://docs.microsoft.com/en-us/azure/container-service/container-service-docker-swarm上的文档表明,有一个Azure负载平衡器会自动为Swarm代理节点设置,这些节点将路由请求到应用程序&#xFF1A;

您现在可以通过Swarm代理负载均衡器的公共DNS名称访问在此容器中运行的应用程序。 您可以在Azure门户中find这些信息。

如果Azure容器服务门户中没有任何地方,则Azure服务中的某处应该是Azure负载均衡器的pipe理,并列出公有DNS。

docker容器绑定到主机端口80.所以从主机,你应该能够击中正在运行的实例, curl localhost并得到一个积极的回应。 如果有效,那么假设这个azure色的实例有一个公共IP(networking接口绑定到公众),你可以用ifconfig获得你的IP地址,并且可以从世界任何地方通过http://12.34.56.78到达你的服务器你的外部接口的IP地址是&#xFF09;