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