As the open source core, Portainer CE remains very much a live project within the open source community. Since June 2018, the Portainer.io team has released versions 1.18.0 through 1.20.2 with a range of new features and capability. If you haven’t tried Portainer recently, here’s what you will find:
Agent Support – If you are using a distributed Docker environment, you can now deploy an agent to your remote Docker Hosts (Windows or Linux, Swarm or Standalone), negating the (arguably risky) need to expose your Docker daemon externally. Communications from the agent to Portainer are TLS encrypted, and the agent only accepts communications from the Portainer instance configured to manage it. Note that the Portainer agent is currently closed source.
Central Dashboard – Introduced in Portainer 1.19.1 this is a new “single pane of glass” management dashboard, which lists all the endpoints defined within Portainer, and shows “at a glance” statistics for each. The statistics are polled on a regular (and configurable) basis and include things such as the health of the endpoint, the number of running stacks/containers, the number of volumes and images, and the overall capacity (CPU/RAM) for each. From this dashboard it is quick and easy to visualize your entire Docker host fleet.
Windows Named Pipes – with Windows powered Docker Hosts, it was previously quite difficult to connect to the Docker daemon with Named Pipes. This was introduced in Server 1709 and 1803. From Portainer 1.19.1, you can now use a volume mount to //./pipe/docker_engine (equivalent to /var/run/docker.sock in Linux) to allow Portainer to control the Host upon which is it running.
More than just Docker – Many Portainer users run the portainer/portainer container on their local machine, to manage multiple remote endpoints. However, Portainer also supports connecting to the Microsoft Azure Container Instance API. This should be considered beta because while it is an exciting development, we do consider it a bit experimental.
Host Management - Now Portainer supports the ability to execute commands on the hosts the underpin your Docker environment. Once enabled through "settings" menu, you can execute any range of commands against the host, including upgrading Docker itself. Also with this feature you can upload/download files the host.
Volume Browser - Ever wished you had a way to get files into or out of a persistent volume easily? Maybe you made a change to your container and now it wont start up? Portainer volume manager now lets you browse inside a volume, rename files, delete files, upload files, and download files.
Stack Deployments – Portainer supports deploying Docker-Compose stacks from version 2 (host containers) up to Compose version 3.6 (swarm services) right from the dashboard. You can copy & paste the docker-compose.yml file directly into the Portainer Web editor, upload it from your computer, or pull it from a Git repository. Note that compose v3 against a standalone host is NOT supported. Swarm is needed to use Compose v3.
Endpoint Groups – If you have more than a handful of Docker Hosts/Clusters defined in Portainer, you might want a way to logically group them; Endpoint Groups provides just this feature, allowing you to define access control per group, and in the future, being able to perform Portainer functions across all members of the group. In addition, Endpoint tags can be assigned, which are used by the new central dashboard to provide a way to filter/search within your list of endpoints, helping to pinpoint an endpoint of interest from your list.
Custom Application Templates – Portainer has long curated a list of commonly used container images and provided these as “opinionated deployment” application templates. You have also always had the ability to repoint the template list to your own list, but starting with Portainer 1.19.1, you now have the ability to modify the curated list directly within the Portainer UI; you can edit existing, remove all, or add your own, all with a few mouse clicks.
LDAP/AD Integration – Portainer has extended its support for LDAP, to now allow Portainer users to be dynamically created and added to Portainer teams upon their first successful login, with team membership being based on LDAP group membership.
Like I said – a busy few months! In my next article I will talk about our first two extensions and some of our thoughts about the future.