People approaching for the first time to containers, soon realize that managing Docker from CLI isn’t the most intuitive way. Even if a user can do some tasks only by CLI, a GUI can help in managing a big number of containers and simplify operations. This post will cover a comparison between the 2 most famous Container GUI: Portainer vs Rancher.
Not everyone knows that Portainer and Rancher had a common point in the past. In fact, from version 1.5 Rancher released a default UI to manage Swarm: Portainer. From release 2.x Rancher focused more to Kubernetes (with its clustering tools) and no longer supported Docker Swarm.
Please find below a table with some of main comparing topics.
|Website slug||Making Docker management easy||Run Kubernetes everywhere|
|First website description||It’s a powerful, open-source management toolset that allows you to easily build, manage and maintain Docker environments.||Rancher is a complete software stack for teams adopting containers. It addresses the operational and security challenges of managing multiple Kubernetes clusters, while providing DevOps teams with integrated tools for running containerized workloads.|
|Mission||Portainer was developed to help customers adopt Docker container technology and accelerate time-to-value.||Rancher was built to manage Kubernetes everywhere it runs. It can easily deploy new clusters from scratch, launch EKS, GKE and AKS clusters, or even import existing Kubernetes clusters.|
|Can use templates||Yes (json based)||Yes (yaml based)|
|Built-in Disaster Recovery||No||Yes|
|Cluster management||Docker Swarm based||Kubernetes based|
|Projects spaces management||Yes (RBAC feature)||Yes|
|GUI Type||Web GUI (default port: 9000)||Web GUI (default port: 80/443)|
|Docker image (dimension) - Raspberry PI compatible||portainer/portainer:linux-arm64-1.22.0|
(198.19 MB). NOTE: the arm64 version is not yet official supported / experimental
|Installation default command||docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer:linux-arm64-1.22.0||sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancherpi/rancher:v2.3.0-rc1-linux-arm64|
Considerations on experience of Portainer vs Rancher
Both the products are fantastic answer to the need of simplifying container high level management.
The first part of the table already shows the main difference between the two GUIs. Portainer aims to simplify Docker management, you can see it as a Docker CLI moved to a web page. Rancher focuses on services for enterprises: team working management, backup and Disaster Recovery tools, a more complete cluster management.
I found Rancher namespaces implementation a great feature: this can be very useful to large companies in managing complex context where multiple teams could be involved in many parallel projects. This feature has recently added by Portainer with RBAC in last release.
Be aware, if you select Rancher, that installation uses default web ports (80 and 443). If you need to expose a web application on the same host, you will probably need to edit host ports in installation docker run command. Another Rancher note is that you will probably need to map persistence to save your data once container stops.
Rancher has also a fantastic and very light OS (called RancherOS), which should be based on BusyBox. If you want to use this OS, you are however free select your GUI. An example of Portainer over RancherOS (installed on Raspberry Pi) is available here.
Finally, my personal consideration is that they are both valid tool to manage your container environment.
Portainer fully matches needs for small environments, expecially when it is based on poor hardware. It works perfectly with Raspberry Pi and could be the best choice if you want to manage a home environment / small lab /small company. It is also going to focus on large enterprises with low cost extensions able to add new features and can also be used on Rancher as alternative orchestrator.
Rancher, on the other side, directly focuses on needs for medium to big environments, expecially when it is based on complex architectures. It could be the best choice if you want open the world of containers to your company and use kubernetes best of class orchestration tool.