Public Repository

Last pushed: 2 years ago
Short Description
A web interface to interact with the Docker/Swarm remote API.
Full Description


GitHub link : Ptimagos/swarmui

SwarmUI is a web interface for the Docker and Swarm Remote API. The goal is to provide a pure client side implementation so it is effortless to connect and manage docker. This project is based on DockerUI project, and is not complete. This's still under heavy development.


  • Minimal dependencies - I really want to keep this project a pure html/js app.
  • Consistency - The web UI should be consistent with the commands found on the docker / swarm CLI.


  • You must start, on each node, the docker deamon with option TCP.
  • One or many docker Swarm Manarger can be started in the cluster.
  • All Swarm Manager and agent must used consul to discover all the nodes.
  • On each node, docker swarm-agent must be started

Using the container

Container Quickstart

  1. Run: docker run -d -p 9000:9000 ptimagos/swarmui -consul http://<consul host ip>:8500

  2. Open your browser to http://<dockerd host ip>:9000

Testing SwarmUI on a single docker-machine

Here we will used docker-machine and virtualbox to create the host environment. In this way, the dockers deamons started with TCP and TLS options.

  1. Create host:

     docker-machine create -d virtualbox master

    We will suppose than the IP address for this machine is ""

    If you are behind a proxy, you can create the machine like this:

     docker-machine create -d virtualbox master \
    --engine-env HTTP_PROXY=http://<proxy ip>:<proxy port>/ \
    --engine-env HTTPS_PROXY=http://<proxy ip>:<proxy port>/
  2. Load the environment of the new machine:

     eval "$(docker-machine env master)"
  3. Start a consul container that will be used by Swarm:

     docker run -p 8400:8400 -p 8500:8500 --name consul-server \
    -h master progrium/consul -server -bootstrap

    The Web UI can be enabled by adding the -ui-dir flag:

     docker run -p 8400:8400 -p 8500:8500 --name consul-server \
    -h master progrium/consul -server -bootstrap -ui-dir /ui
  4. Copy the certificats in the directory "/certs":

     docker-machine ssh master
     sudo mkdir /certs 
     sudo cp /var/lib/boot2docker/ca.pem /certs
     sudo cp /var/lib/boot2docker/server.pem /certs
     sudo cp /var/lib/boot2docker/server-key.pem /certs
  5. Start a Swarm Manager container, with TLS option:

     docker run -d --name swarm-manager -p 3376:3376 -v /certs:/certs \
    swarm manage --tls --tlscacert=/certs/ca.pem --tlscert=/certs/cert.pem \
    --tlskey=/certs/key.pem -H tcp:// consul://
  6. Start a Swarm Agent container:

     docker run -d --name=swarm-agent swarm join \
    --addr consul://
  7. Start SwarmUI:

     docker run -d -name=swarmui -v /certs:/certs \
    -p 9000:9000 ptimagos/swarmui -consult \
    -tls -CA /certs/ca.pem -cert /certs/server.pem -key /certs/server-key.pem

    If you are behind a proxy, you can create the container like this:

     docker run -d -name=swarmui -v /certs:/certs \
    -p 9000:9000 ptimagos/swarmui -consul \
    -tls -CA /certs/ca.pem -cert /certs/server.pem \
    -key /certs/server-key.pem -proxy http://<proxy ip>:<proxy port>

    Now you can connect to the SwarmUI web interface:

    At this point, you must have, in the dashboard, 4 containers, 3 images and 1 host.

  8. Add new host in the cluster:

     docker-machine create -d virtualbox app
     eval "$(docker-machine env app)"
     docker run -d --name=swarm-agent swarm join \
    --addr <ip address host app>:2376 consul://

    Check again the web interface, you must have 5 containers, 3 images and 2 hosts now.

Docker Pull Command