preface

Recently, for the convenience of command-line allergic testers or developers, I decided to deploy a visual management platform to manage Docker. After reinstalling the system for a dozen times (of course, it was only a virtual machine image clone) and comparing, I finally chose a desired management platform.

Deploy the Docker environment

Install/upgrade your Docker environment, it is recommended to use ali cloud image download: warehouse mirrors.aliyun.com/help/docker-engine or execute the following command:

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -Copy the code

In addition, it is recommended to use Ali Cloud image acceleration to facilitate the later pull image. Apply personal unique accelerator address cr.console.aliyun.com/ To use the accelerator by modifying the daemon configuration file /etc/dock/daemon.json:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://***.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart dockerCopy the code

DockerUI

DockerUI is based on the Docker API and provides most functions equivalent to the Docker command line.

The deployment of

[root@localhost ~]# docker pull uifd/ui-for-docker 
Using default tag: latest
latest: Pulling from uifd/ui-for-docker
841194d080c8: Pull complete 
Digest: sha256:fe371ff5a69549269b24073a5ab1244dd4c0b834cbadf244870572150b1cb749
Status: Downloaded newer image for uifd/ui-for-docker:latest
[root@localhost ~]# docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker
ac85040b8a9f2f203c22ba2e4d90a830e31d89a1d6ce77579a7b95de5da51e01Copy the code

Pull the mirror

docker pull uifd/ui-for-docker Copy the code

Start the container

docker run -it -d --name docker-web -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock docker.io/uifd/ui-for-docker Copy the code

interface

Open IP :9000, home page:













conclusion

Advantages:

  1. Container management support
  2. Image management
  3. Based on the Docker API, it is itself a container.
  4. High stability
  5. Dynamic display displays the relationship between containers
  6. Container management, adding port mapping, adding system variables, mapping directory, and so on

Disadvantages:

  1. There is no login authentication, because there is no login system, the current solution is to only open local access, or to control permissions through TLS.
  2. Unable to allocate container to user.
  3. Multiple hosts are not supported.
  4. Swarm is not supported
  5. Function less
  6. Console commands are not supported

conclusion

Since there is no registration system, it is difficult to circulate in the company. Because of this, everyone can control, even through TLS to control permissions, but can not assign container management permissions to a user, so eventually abandoned the platform.

Shipyard

Shipyard is based on Docker Swarm, which manages Docker resources, including containers, images, registry, etc.

The deployment of

This section takes the automatic deployment on the official website as an example. The deployment code is as follows

curl -sSL https://shipyard-project.com/deploy | bash -sCopy the code

Note: This exposes the Docker Engine on port 2375. If this node can be accessed outside of a secure network, TLS is recommended.

Clustering is supported, so you can add nodes:

curl -sSL https://shipyard-project.com/deploy | ACTION = node DISCOVERY = etcd: / / 10.0.0.10:4001 bash-sCopy the code

The IP address in the preceding code is the IP address of the first server. As a result, it suddenly launched seven containers, including two swarm containers

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                            NAMES
fb81fb51d619        shipyard/shipyard:latest       "/bin/controller -..."2 minutes ago Up 37 seconds 0.0.0.0:8080->8080/ TCP Shipyard - Controller e9e462e168EA swarm:latest"/swarm j --addr 1..."   2 minutes ago       Up 2 minutes        2375/tcp                                         shipyard-swarm-agent
8913ed62608d        swarm:latest                   "/swarm m --replic..."   2 minutes ago       Up 2 minutes        2375/tcp                                         shipyard-swarm-manager
ee1e25e0235d        shipyard/docker-proxy:latest   "/usr/local/bin/run"     2 minutes ago       Up 2 minutes        0.0.0.0:2375->2375/tcp                           shipyard-proxy
f10edb7eda1c        alpine                         "sh"                     3 minutes ago       Up 3 minutes                                                         shipyard-certs
6411b4226a6f        microbox/etcd:latest           "/bin/etcd -addr 1..."3 minutes ago Up 3 minutes 0.0.0.0:4001->4001/ TCP, 0.0.0.0:7001->7001/ TCP Shipyard - Discovery eAF008cbebae rethinkdb"rethinkdb --bind all"   3 minutes ago       Up 3 minutes        8080/tcp, 28015/tcp, 29015/tcp                   shipyard-rethinkdbCopy the code

Add nodes, and the node machine will automatically run 5 containers. It has to be said that it is powerful, but it comes at a price.

interface

Container list













conclusion

Advantages:

  1. Supports image management and container management.
  2. Console command support
  3. Container resource consumption monitoring
  4. Support swarm, you can add nodes at will
  5. You can set the read-only and management permissions of a container for a user.
  6. A localization version

disadvantages

  1. There are many startup containers, which occupy part of the resources of each node
  2. Compatibility is not high, may be my own reasons, often can not open the home page.

conclusion

Generally speaking, Shipyard has powerful function, high practical type, supports cluster and container permission allocation, which is the only choice of the company. However, considering that the home page often cannot be opened and each server occupies too much resources, it is listed as the alternative solution for the time being.

Portainer

Portainer is a lightweight Docker container management platform, which occupies less resources, supports clustering, and supports permission allocation.

The deployment of

docker run -d -p 9000:9000 portainer/portainerCopy the code

Deploy Portainer to manage Swarm clusters or directly deploy Portainer as a service in Docker clusters.

docker service create \
--name portainer \
--publish 9000:9000 \
--constraint 'node.role == manager' \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
portainer/portainer \
-H unix:///var/run/docker.sockCopy the code

interface

page





















conclusion

advantages

  1. Supports container management and image management
  2. Lightweight and consumes less resources
  3. Docker API based, high security, docker API port can be specified, support TLS certificate authentication.
  4. Support permission Assignment
  5. Support the cluster

disadvantages

  1. Not powerful enough.
  2. After a container is created, ports cannot be added in the background.

conclusion

Portainer had some issues, but it satisfied basic requirements and supported permission assignment, so I chose it.

Daocloud

Daocloud is an old-school third-party management platform that gives you the freedom to add machine nodes and is extremely powerful.

The deployment of

Log in and register dashboard.daoCloud. IO to add host nodes

curl -sSL https://get.daocloud.io/daomonit/install.sh | sh -s* * * * keyCopy the code

interface

Container list

















conclusion

Advantages:

  1. Supports image management and container management.
  2. Console command support
  3. Container resource consumption monitoring
  4. Support cluster can add nodes at will
  5. Chinese platform
  6. Image download
  7. Expand and manage containers

disadvantages

  1. The management platform cannot be deployed on the local server
  2. Some advanced functions are charged

conclusion

Because of the closed source and the charge, the team gave it up for the time being, but as our own test use, we strongly recommend using it, because we can easily deploy a powerful management docker platform with a click of the mouse.

Final summary

After the analysis of docker management platform, I believe everyone must have their own understanding, if possible, you can try to deploy, if you have new experience or better platform, please tell me.