I went back to utilize an old Machine with Proxmox for containers but also wanted to have a platform to play with Docker. So I though pimping the Promox server is the best solution.

The Steps are easy to get docker running but since Proxmox offers the best GUI for lxc I needed something similar for the docker containers.

Note: This DOES NOT add Docker into the Proxmox GUI itself. I’m adding a separate web page for docker running in a container by itself.

Step 1: Install Docker

This is based on the assumption that our servers IP address is 192.168.1.50, we are root and running on Debian 8.x. To check use

cat /etc/debian_version 
8.6     <-- result

We add the Debian Backports which contains the Docker packages.

echo "deb http://ftp.debian.org/debian jessie-backports main" >>/etc/apt/sources.list

Now we install docker.io

apt-get update; apt-get install docker.io  

That’s it.  To test the docker installation use:

docker run --rm hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/

This shows that Docker is up and running.

Now we need some management GUI.

I’ve tested a few different ones with the following requirements in mind.
– Full management web GUI for docker (requirement accomplished by both options)
– Start, Stop, Create, delete containers, manage network port mapping with ease
– Ability to download containers from docker hub or any other catalog
– The GUI shall run itself in a container so it will be easy to remove or update.

Most of the GUIs I looked into and tried failed short or were too complex for my requirements. I prefer KISS. Finally, I decided to go with DockerUI and Rancher.

DockerUI

UI For Docker is a web interface for the Docker Remote API. The goal is to provide a pure client side implementation so it is effortless to connect and manage docker.

DockerUI is a very basic webGUI perfectly providing the ability to start, stop and remove containers and images. However, to create new container images, you cannot  browse a catalog and would need to give the image name to pull. Also, I found that there is a lack in the way to manage the containers like forwarding ports not too straight forward. The creation process seems to me asking for too many things but I still could not figure where to put the only important detail which is the port I want to be forwarded. This may need some more work to look into.

Installing DockerUI

We pull DockerUI from Docker Registry Hub and run it inside a container.
We will forward the internal used port 9000 to be forwarded from the external IP adress.

docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker

To use dockerUI use the browser and go to http://yourserverip:9000/#/ (example http://192.168.1.50:9000)

Rancher

Rancher is a complete, open source platform for deploying and managing containers in production. It includes commercially-supported distributions of Kubernetes, Mesos, and Docker Swarm, making it easy to run containerized applications on any infrastructure.

Since DockerUI didn’t really satisfy my needs I moved on to look for something more manageable.
Rancher required a few more steps but seems to be able to handle cluster and multiple hosts which come handy if you run more than just one server.
Also, does Rancher provides an own catalogue of services to download and run, which comes very handy and worked out of the box. However, it does not provide a Docker Hub connection, therefore  adding a container from a docker hub proved to be easier using the command line.

Another gotcha was that containers are always online unless they are removed, so therefore, you need to delete a stack in order to stop containers.

Todo: How do I get docker Hub images into Rancher, how can I keep containers offline unless I need them.

Installing Rancher

First, we need to install the Management Server

docker run -d --restart=always -p 8080:8080 rancher/server

Then we use the browser to access the Management server and to add the host.

http://yourserverIP:8080 (example http://192.168.1.50:8080)

Once opening the the browser page Rancher will ask you to configure and add the first host

Rancher add first host

Rancher Host Registration URL

Rancher Add Host

Rancher will ask you to Copy, paste, and run the provided command to register the host with Rancher.

Once running the command, which will pull another container and closing, the new host will be available under Infrastructure – Hosts

From there on I would suggest to read and follow the Rancher Quick start Guide.

One Important thing (for me) was to disable containers to auto start / auto restart as I use it only for testing. As above that wasnt that straight forward.

%d bloggers like this: