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