首页 文章

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

提问于
浏览
0

我好像在这里遗漏了一些东西 .

所以我在Azure上设置了一个免费帐户 . 使用他们的教程作为参考,我设法设置公钥/私钥,然后我进入服务器 . (这是在门户网站上创建容器资源后完成的) . 进入该服务器后,我成功运行了这个命令:

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

我还可以使用docker ps命令验证它是否正在运行 . 我也知道这在我的本地系统上工作正常所以我觉得我非常接近让我的第一个容器化码头工具启动并运行但我似乎无法弄清楚我需要去查看现场的地址应用程序 .

根据堆栈溢出的一篇文章,它应该是以'swarm-master-ip-'开头的资源上列出的DNS名称,但这不起作用,也没有列出IP地址 . 我查看了资源列表中的每条记录,并尝试了所有的DNS和IP地址(大多数都是重复的),但它们似乎都没有 .

有什么建议?

3 回答

  • 0

    根本原因是你在master上创建容器,我们应该在swarm代理上创建容器 . 默认情况下,我们 can't 在swarm master上创建容器 .

    一旦我们满足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
    

    然后我们 access the docker swarm clusterset your DOCKER_HOST environment variable 到您为隧道配置的本地端口whit命令 export DOCKER_HOST=:2375docker 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
    

    然后我们可以使用 public IP addressDNS 的swarm-agent-lb负载均衡器来访问该网站 .

    有关设置环境的更多信息,请参阅此link .

  • 0

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

    既然你提到 swarm-master-ip 我假设你在容器服务中启动了一个Swarm集群 . https://docs.microsoft.com/en-us/azure/container-service/container-service-docker-swarm上的文档建议为Swarm代理节点自动设置Azure负载均衡器,以便将请求路由到应用程序:

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

    如果Azure容器服务门户中没有任何位置,则Azure服务中的某个位置应该是Azure Load Balancer的管理,并为其列出公共DNS .

  • 1

    docker容器绑定到主机端口80.因此,从主机,您应该能够点击正在运行的实例 curl localhost 并获得肯定响应 . 如果可行,那么假设这个azure实例有一个公共IP(绑定到公共网络的网络接口),您可以使用 ifconfig 获取您的IP地址,并且从世界上任何地方您都可以从http://12.34.56.78到达您的服务器(无论您的外部接口IP地址是什么) )

相关问题