Docker GUI to control remote Docker host
I just started playing with Docker on my Ubuntu laptop (machine A) and realized that the GUI (Kinematic) is available on Windows and Mac only. I therefore decided to run the GUI on another machine (B) from which I thought I would be able to control Docker containers on A. (In fact, B is a KVM machine inside A but this is not quite relevant.)
So I installed Docker Toolbox on B and realized that Kinematic is trying to create a local Docker host on B (using VirtualBox) — instead of asking me where my existing Docker host is (on A).
Is there a way around it? Is it not yet possible to control Docker containers on A from a Docker GUI on B?
Solution 1:
Currently, Kitematic only supports connecting to the Docker daemon in Docker for Windows/Mac or the "default" docker-machine machine.
This is the relevent github issue (as far as I can tell) where adding support for further client config has been proposed: https://github.com/docker/kitematic/issues/777
Is there a way around it? Is it not yet possible to control Docker containers on A from a Docker GUI on B?
There is no design limitation inherent in Kitematic nor Docker to prevent this. It simply boils down to the fact that it has not been implemented in Kitematic yet.
Most of the GUIs out there tend to be web-based GUIs. Universal Control Plane, Docker Cloud, and Shipyard all come to mind. None of these are really analogous to Kitematic, however. With that said, they are all technically GUIs that allow you to manage one (or more) remote Docker engine.
Solution 2:
In case you're looking at open source product which can manage your cluster of nodes through GUI, then its "Portainer". If commercial, then the popular tool is "Docker Datacenter".
Portainer is very lightweight management UI which can help you to easily manage your different Docker environments (Docker hosts or Swarm clusters). It consists of a single container that can run on any Docker engine (can be deployed as Linux container or a Windows native container).
Not only this, it allows you to manage your Docker containers, images, volumes, networks and more ! It is compatible with the standalone Docker engine and with Docker Swarm mode.
Trying out portainer is very simple. All you need is run the below command on your host running Docker Engine:
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer
Done. Now you can access it through by pointing your web browser at http://DOCKER_HOST:9000
In case you want to manage the group of Swarm Cluster, then here is the right command:
docker run -d -p 9000:9000 portainer/portainer -H tcp://:2375