Public Repository

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

SwarmUI

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.

Goals

  • 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.

Constraints

  • 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 "192.168.99.100"

    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
     exit
    
  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://0.0.0.0:3376 consul://192.168.99.100:8500
    
  6. Start a Swarm Agent container:

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

     docker run -d -name=swarmui -v /certs:/certs \
    -p 9000:9000 ptimagos/swarmui -consult http://192.168.99.100:8500 \
    -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 http://192.168.99.100:8500 \
    -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: http://192.168.99.100:9000

    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://192.168.99.100:8500
    

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

Docker Pull Command
Owner
ptimagos