Introduction
Portainer is one of the most effective tools I’ve encountered for managing Docker containers. It simplifies what can often feel like a chaotic process by providing a centralized, user-friendly interface. Instead of juggling endless commands in the terminal, Portainer allows you to deploy, monitor, and manage your Docker environments seamlessly. Whether you're setting up containers, managing volumes, or overseeing multiple servers, Portainer makes it easy to stay organized and efficient. It's especially helpful for those of us who manage multiple Docker setups and need a way to bring everything under one roof.
One of my favorite features is how well Portainer integrates with tools like NGINX Proxy Manager. For anyone who wants to set up secure subdomains or streamline endpoint management, this integration is a game-changer. It not only enhances security but also simplifies the entire setup process. For those managing multiple servers, the edge endpoint feature is another standout. It allows you to oversee all your Docker environments from one interface, saving time and reducing complexity. Whether you're working on a small project or managing enterprise-level deployments, Portainer has something to offer.
This guide walks you through everything you need to get started with Portainer. From launching your first container to configuring advanced features like edge endpoints and subdomain management, I’ve laid out the steps to make the process as smooth as possible. My goal is to help you understand not just how to use Portainer, but how to get the most out of it. If you’ve ever felt overwhelmed by Docker management, I think you’ll find this tool as invaluable as I have. By the end of this post, you’ll be better equipped to take control of your Docker workflows and spend less time troubleshooting and more time building.
References
Prerequisites
- Internet Connection
- Up-to-date Server
- Proper permissions to run Docker commands
- Docker Setup - Ultimate Docker Guide
Overview
Portainer is one of the best tools out there for managing Docker containers. It provides an intuitive, user-friendly interface that takes much of the hassle out of container management. Instead of relying solely on the command line, you can use Portainer to deploy, monitor, and manage your Docker environments with ease. It works well for both beginners and more experienced users who want to centralize their workflows. One thing I love about it is the ability to manage multiple Docker setups through its edge endpoint feature. If you’re dealing with multiple servers, this saves so much time.
Another standout feature is the integration with tools like NGINX Proxy Manager. This makes setting up secure subdomains or managing endpoints really straightforward, which is great for improving security while keeping things efficient. While Portainer itself has a free open-source version, there are some paid features in the Business Edition. These extras are geared more toward enterprise users who need advanced capabilities like role-based access control. For most users, though, the free version does more than enough to cover container management needs. Overall, it’s a fantastic tool that simplifies Docker and lets you focus on building and running your applications.
Launch Container
Run the following and this will start an instance of portainer.
services:
portainer:
image: portainer/portainer-ce:2.21.0-rc1
container_name: portainer
restart: unless-stopped
ports:
- "9443:9443"
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /data/portainer:/data
services:
portainer_agent:
image: portainer/agent:2.21.0-rc1
container_name: portainer_agent
restart: always
ports:
- "9001:9001"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
- /:/host
You will need to navigate to http://ipaddress:9443 to finish the setup.
NGINX Proxy Manager Setup
Create a new site with the subdomain you want like portainer.example.com and point it to the server that is hosting it with the 9 port. Set your SSL and save.
Portainer Edge Endpoint Setup
If you are going to use docker on other servers, you can set them up as endpoints so you only have to login to one portal and get access to all your docker containers with their statuses. NGINX Proxy to IP address no port, if you are using Cloudflare make sure you are not proxying. If you are using it locally, you should just be able to skip this part and just use the IP of the server for the connection instead.
Portainer Server URL is the URL of the main server
- Login to your portainer panel.
- Go to Endpoints.
- Click Add.
- Click Edge Agent.

Public IP is the URL of the endpoint you want to manage.

Make sure Docker Standalone is selected. Then press the copy button to copy the command and paste it on the server.

Update the public IP with the address of the server.


Conclusion
Portainer is one of the most practical tools I’ve come across for Docker management, and I hope this guide has given you a clear path to making the most of it. By centralizing the management of containers, volumes, and endpoints, Portainer transforms what could be a tedious process into something manageable and even enjoyable. Whether you’re just launching a single container or overseeing multiple servers with edge endpoints, the steps outlined here should help you get started and stay organized. The integration with NGINX Proxy Manager is particularly useful for setting up secure subdomains and ensuring your environments are both accessible and protected. These kinds of features make Portainer not just a tool, but a time-saving asset for anyone working with Docker.
As you implement the practices shared here, keep in mind that the goal is not just to manage containers but to create a system that works for you. Portainer’s flexibility means it can scale with your needs, whether you’re running a small project or managing complex deployments. By following the setup instructions and leveraging features like edge endpoints, you can centralize your operations and focus more on building rather than troubleshooting. I encourage you to experiment with the configurations and find what works best for your workflows. With Portainer, managing Docker environments becomes less about wrestling with complexity and more about streamlining your processes for better efficiency and control.
Full Disclosure
Most of this article is comprised of facts and opinions. AI (specifically Grok and Notion AI) was used in the creation of this post. The featured background image was created by andyoneru and is available on Unsplash. I added a blur and a gradient overlay with some text. The following images have been pulled or screenshotted from the respective websites/applications. I do not own this content.