Docker Swarm Management: A Quick Overview of Rancher, Portainer and Shipyard

1
Rancher Portainer Shipyard
Rancher Portainer Shipyard

In the lab, we wanted to set up a Docker Swarm for testing purposes. With Docker engine post 1.12 (current version is 1.13 as of this writing) setting up a swarm and joining nodes is incredibly simple. We even showed how to setup a Docker Swarm on a Windows 10 workstation in a few minutes. While the CLI is getting more robust with each version, the need for a “phone friendly” management solution became apparent. We decided to put three popular Docker management tools, Rancher, Portainer and Shipyard on a small 200 thread test cluster and see how user-friendly each one is.

As a bit of warning, our hypothesis on which one we would like the best ended up to be false after we got each up and running.

The Video

We created a quick 5-minute video walking through these three options on our small test cluster:

Since we wanted to keep the video brief, we are adding our notes and impressions in this article.

Portainer – Lightweight and Great

Portainer.io was something we were turned on to at a coffee shop in Mountain View, CA. It bills itself as a user-friendly Docker swarm management tool. In fact, if all you are doing is managing Docker swarm clusters, Portainer may just be the perfect tool. You can see that it was very easy to get running just by our lab notes.

Portainer Cluster Overview
Portainer Cluster Overview

We like that Portainer makes it easy to create services on the Docker Swarm cluster we had setup. It also makes it easy to do make small tweaks such as adding labels.

Portainer Global Service Detail Monero Mining
Portainer Global Service Detail Monero Mining

Digging into containers we like features such as the ability to view logs and console output for each container. The overall creation process for a single container or a swarm managed service is extremely simple. If you are accustomed to the Docker CLI, the Portainer UI layout makes a lot of sense.

Portainer Remove Containers Via GUI
Portainer Remove Containers Via GUI

Portainer has features like a template library built-in. If you want to quickly deploy a small selection of applications, this is a good way to get started.

Portainer Deploy Templates
Portainer Deploy Templates

Overall, we really like Portainer. It follows Docker very closely and instead of using its own components simply leverages what the Docker ecosystem has to offer. Portainer is now our recommended solution for managing small swarm deployments and for those managing solely Docker. If you have a standard Docker Swarm that you are managing via CLI, you should give Portainer a try.

Shipyard – Left Wanting

Shipyard was the solution we were most excited about when we had started. Likely this is because we have had a Google Keep note for around a year that says “try Shipyard for Docker.” It has been a project we wanted to try but never got around to for years. You can see our raw initial impressions in our lab notes.

Shipyard Node Listing
Shipyard Node Listing

Unlike Portainer, Shipyard does have its own set of infrastructure. That means that you will see several containers running to manage the service, although fewer than we saw Rancher launch.

Shipyard Infrastructure Containers
Shipyard Infrastructure Containers

Overall the setup process was simple and Shipyard works. We especially liked the drill down into individual containers where one could see charts with CPU utilization, logs and even access a web-based console for the container.

Shipyard Container Detail
Shipyard Container Detail

Creating a global service while easy on both Portainer and Rancher was not intuitive for us with Shipyard. We had three folks try to set a simple global service up with a three-minute timeout and nobody did it successfully (via the GUI).

Shipyard Container Deployment
Shipyard Container Deployment

For Docker-only management, go with Portainer over Shipyard. Shipyard creates several additional containers for managing the cluster and many seem redundant with what the Docker team has incorporated into the latest engine releases. In our four node cluster we had a total of 20 Shipyard related containers while Portainer used one. For many folks Shipyard is going to be the right solution and you can get a more detailed walkthrough by either launching your own Shipyard tool or checking out the project’s official walkthrough.

Rancher – Robust

Rancher is by far the most robust solution. In fact, Rancher has solutions for things the other solutions never contemplated. The base installation uses its Cattle orchestration management instead of Docker Swarm. Docker Swarm environments are still in “Experimental Mode” along with Windows. Rancher also supports Mesos and Kubernetes which is something the other solutions we looked at cannot claim.

Rancher Environments
Rancher Environments

Even with just four nodes, looking at the Infrastructure Hosts view provided a lot of information.

Rancher Hosts View
Rancher Hosts View

One small note here is that as we have been transitioning to 40GbE+ in the lab, it would have been nice to see bits like how fast the external network cards are along with CPU and RAM specs.

Rancher Host View
Rancher Host View

We did not setup Rancher in HA mode but it is possible and there are clear guides and UI elements for that purpose. Adding containers was simple and more similar to what we saw with Portainer. There is a lot going on and you can see features like “Health Check” options that are not available with Portainer at this time.

Rancher Service Create
Rancher Service Create

The Rancher catalog was significantly more robust than other offerings. The ability to quickly configure and deploy a myriad of different solutions was excellent.

Rancher Catalog
Rancher Catalog

If you have a bit more time to set a solution up, the robustness of Rancher is excellent compared to the other two solutions we tried, especially in a lab environment. If you have an enterprise cluster where you want external authentication sources, the ability to drive containers on different infrastructure such as AWS, Azure and etc, Rancher should be atop your list.

Final Words

In the end, we are likely to use a combination of Portainer and Rancher. Rancher we will use for our primary clusters as it does provide an expanded feature set we can use. Portainer we will utilize for testing clusters and will be our go-to lightweight Swarm management GUI. If you have an existing Docker Swarm and want to try a GUI, try Portainer. Portainer is so lightweight and follows Docker so closely that if you were to delete the Portainer image (without persistent storage) and re-launch Portainer one of the only items missing would be user authentication changes. Rancher is the robust solution that allows you to handle many different types of containers. Since we were able to get all three working on the same four nodes, you can replicate this experiment and try them all for yourself with 15 minutes or so of work.

1 COMMENT

  1. The show stopper drawbacks of rancher is that it asks for complete control of the infrastructure (you must not use ‘docker swarm’ commands) and god-knows-what containers it runs in the name of ‘infrastructure services’. There are no details on how rancher works and in case rancher goes bad ———> rancher labs commercial support.

    Then there’s no support of private repositories, in case you didn’t notice. BUT you ran the test with the Internet on — because we’re using containers, means everything becomes secure out of the box, Linux kernel, docker, and all of these UIs can never have vulerabilities with containers.

LEAVE A REPLY

Please enter your comment!
Please enter your name here