I have been using Docker for years now for both professional and personal reasons and even more so since I started to blog about the topic here. Now, personally, I don’t have a problem using the command line to look after my containers but because I have been testing what seems like a hundred different deployments for the blog I wanted an easier way to see what was running on my test setups.
After a couple of hours searching and testing various GUIs and Panels that claimed to manage containers to varying degrees I finally discovered Portainer, an all in one Docker Management Portal.
What is Portainer?
Portainer is a very powerful, open-source toolkit for managing a docker environment. It is capable of managing everything from a couple of containers install on your test machine to entire docker swarms!
Managing Stacks, Services, Containers, Images, Volumes and Networks is made so simple with the fresh-looking intuitive interface. The ability to quickly see everything that is happening on our Docker Server just makes the quality of life so much better when it comes to working with lots of containers.
At the moment I’m only using it for my testing server but apparently it is capable of managing an entire Docker Swarm. I say apparently because I haven’t played with that yet but I’m sure it can.
I had to include the Dashboard in my review because it has been one of the most useful features I have used since installing on my testing machine.
It updates in real-time and gives me the status of all Docker related services running on my node. Whether I’m building containers or just testing them I can quickly see what is running and what has stopped which reduces so much troubleshooting time.
I have played around a lot with stacks for upcoming blog posts and again Portainer excels at reducing time when it comes to managing and developing stacks. It’s interface quickly allows you so see what running and what problems are occurring. It even has a Web Editor that allows you to post Docker Compose content directly into the GUI as well as allowing uploads and links to git repositories.
Services is another area that Portainer just impresses, you can manage any services that were created as part of a stack or just create your own. A service is essentially a container with additional information about scaling and how it accessed. Once again the GUI is intuitive and easy to understand.
Perhaps one of the most used features on my testing server. The ability to easily see what is running, what ports are published and quick, easy access to the logs.
If you need to see whats going on inside a container, Portainer gives you a button that will give you a shell in the browser direct into your container.
Images & Volumes
Even though these are relatively simple features that show you what volumes exist and images are currently downloaded I didn’t realise just how much I would use this day to day.
It’s always been one of my biggest flaws on Docker testing server. Images that get stored forever after I have tested the container and volumes that didn’t get removed. These GUIs ensure that that you are in control of what storage is being wasted and both allow you to see what is in use and what isn’t being used any more.
Installation of Portainer is probably the easiest thing in the work when it comes to a lot of the admin panels that I tested. It’s only a matter of starting a docker container.
All you need is a machine running Docker. If you don’t know how to do that take a look at my Install Docker on Ubuntu 18.04 tutorial.
Once you have that running the only thing you need to do is run the following command and make sure you have access to port 9000. Remember that this is fine for a local server but for production, you would need to configure SSL
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Once the container starts you can access the GUI from any web browser on port 9000.
In short, Portainer is an amazing piece of software that can dramatically help you manage a Docker from a single node to an entire cluster and it’s well worth the time taken to learn. Combine with its ridiculously easy installation should a least have you giving a deserving test.
The only note I would take is that Portainer is largely based on Docker and Docker Swarm. If you are Kubernetes user that Portainer right now probably isn’t for you.