How can i view my dockerized container app that i just set up on Azure?

I seem to be missing something here.

So i’ve set up a free account on Azure. Using their tutorials as a reference, I managed to get the public/private keys set up and i ssh’d into the server. (this was done after creating a container resource on the portal). Once in that server I sucessfully ran this command:

  • What is the difference between the `COPY` and `ADD` commands in a Dockerfile?
  • Periodic app restarts in a Docker container
  • Unable to correct problems, you have held broken packages
  • Running a script in docker container and not killing the script when leaving terminal
  • Grouping all the containers on a host: advantages or not?
  • uwsgi layer blocks one particular API call from nginx
  • docker run -d -p 80:80 dallascaley/get-started:part1

    I can also verify that it is running by using docker ps command. I also know that this works fine on my local system so i feel that i am very close to getting my first containerized docker app up and running but I just can’t seem to figure out what address i need to go to to view the live app.

    According to one post on stack overflow it should be the DNS name that is listed on the resource that starts with ‘swarm-master-ip-‘ but that doesn’t work, nor does the IP address listed. I’ve looked at every record in my resources list and tried all of the DNS and IP address (most of which are duplicates) and none of them seem to work.

    Any suggestions?

  • Adding an ECS instance in AWS - where to set the cluster name
  • getting meteor do work in docker + commiting and then rerunning issue
  • Run two processes in a single docker container or two containers connecting to the same DB?
  • FeignClient call with consul service throws connection refused in docker container
  • Running svn update script on docker container start
  • Docker + nginx + PHP - nginx does not point to the root directory?
  • 3 Solutions collect form web for “How can i view my dockerized container app that i just set up on Azure?”

    The root cause it that you create your container on the master, we should create container on swarm agent. By default we can’t create container on swarm master.

    Once we content to swarm master and run docker info, the information like this:

    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
     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:
    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
    Docker Root Dir: /var/lib/docker
    Debug Mode (client): false
    Debug Mode (server): false
    Experimental: false
    Insecure Registries:
    Live Restore Enabled: false
    WARNING: No swap limit support

    Then we access the docker swarm cluster, set your DOCKER_HOST environment variable to the local port you configured for the tunnel whit this command export DOCKER_HOST=:2375 and 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
      └ 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
     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

    Then we run docker ps to get the information:

    root@swarm-master-784816DA-0:~# docker run -d -p 80:80 yeasy/simple-web
    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>80/tcp   swarm-agent-784816DA000001/stupefied_snyder

    Then we can use the public IP address or DNS of swarm-agent-lb load balancer to access the website.

    More information about set environment, please refer to this link.

    I don’t know Azure and the Azure Container Service so I’m trying to answer this based on what I can gather from the documentation.

    Since you mentioned swarm-master-ip I’m assuming you launched a Swarm cluster in the container service. The documentation at suggests that there is a Azure Load Balancer automatically set up for the Swarm agent nodes that will route requests to the applications:

    You can now access the application that is running in this container through the public DNS name of the Swarm agent load balancer. You can find this information in the Azure portal.

    If there isn’t anywhere in the Azure Container Service portal, then somewhere in the Azure service should be the management for the Azure Load Balancer and list the public DNS for it.

    The docker container is bound to the host port 80. So from the host, you should be able to hit that running instance, curl localhost and get a positive response.
    If that works, then assuming this azure instance has a public IP (network interface bound to the public) you could get your IP address with ifconfig and from anywhere in the world you can reach your server from (whatever your external interface IP address is)

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.