Building a Portainer-based graphical Docker management interface
This article was last updated 287 days ago. The information within may have evolved or changed; if anything is outdated or broken, please feel free to leave a message in the comments section.
Article Abstract
To solve the problem of the Docker command-line management interface not being intuitive enough, a graphical management platform is built by deploying Portainer to achieve browser-based container resource management. Portainer supports local Docker, Swarm, and Kubernetes environments, providing operations such as container parameter modification and network configuration adjustment, especially suitable for scenarios where direct SSH management is not possible. During deployment, the host port and the docker.sock file must be mapped to establish communication, and public network access requires integration with a reverse proxy solution to adapt to different network environments. This practice provides a visual operation path for container management in scenarios such as home broadband and cloud hosts, forming a technical connection with topics like reverse proxy and cloud host filing in the series of articles.
Qwen3-14B · 2026-06-18

Preface

Usually when we set up Docker, whether we usecommand will also automatically pull the Llama 3.2 model file when Ollama finds it is not available locally, which is actually similar tocommands ordocker composecommands, they are all completed in the terminal using commands. Although we can still use commands to view various Docker statuses, overall it is not very intuitive.

Although there are corresponding Docker Desktops that can be installed under Windows, Mac, and Linux, unless they are usually used as desktop terminals, having to use a remote desktop connection first just to use the GUI interface for management is quite inconvenient. Therefore, what we need is a graphical interface that can be managed directly using a browser, which brings us to what this article introduces: Portainer.

Portainer is an open-source container management platform that provides an intuitive and easy-to-use Web interface to help users manage Docker container clusters, images, volumes, and other resources. Portainer supports multiple Docker environments, including local Docker, Swarm mode, Kubernetes, etc., and supports multi-tenancy, RBAC permission management, and other functions. Using Portainer, you can easily create, start, stop, and delete containers, manage container networks, volumes, environment variables, and other settings, and view container logs, statistics, etc. In addition, Portainer also provides some practical functions, such as container templates, custom dashboards, event monitoring, Web terminals, etc.

Deploying Portainer

The command is as follows:

docker run --name=portainer -d --restart=always  \
-p 9000:9000 \
-v /run/docker.sock:/var/run/docker.sock:ro \
-v /docker/portainer/data:/data \
--workdir=/ --runtime=runc \
portainer/portainer-ce:latest

Parameter explanation:
-p 9000:9000 \
-v /run/docker.sock:/var/run/docker.sock:ro \
-v /docker/portainer/data:/data \
--workdir=/ --runtime=runc \
portainer/portainer-ce:latest
-p 9000:9000

Interface Introduction

Maps port 9000 of the host machine to port 9000 of the container. You can adjust this according to your actual situation.

image.png

-v /run/docker.sock:/var/run/docker.sock:ro
image.png

/run/docker.sock is the Unix domain socket that the Docker daemon listens to by default. This parameter maps the host's docker.sock into Portainer, allowing Portainer to communicate with the host's Docker daemon, thereby enabling the management of other containers.
image.png

--workdir=/ --runtime=runc \
image.png

Specify working directory and runtime
image.png

Use http://Host_IP:9000 to log in to Portainer. For the first login, you need to create an administrator account:
After creation, enter the system, and the interface is as follows:
image.png

Portainer can manage multiple environments. Through "Add Environments" on the right side of the image above, you can manage Docker on other machines or manage Swarm and K8s clusters. This time we are only doing local management, so click "Get Started" on the left to enter the local page:
image.png

Click "Live connect" in the red box on the right side of the image above to enter the dashboard:
In Stacks are the container collections I created using the docker compose command:
image.png

I have 2 in here because I only used the docker compose command twice, one is the SafeLine WAF, and the other is Umami traffic monitoring.
image.png

Images contains all downloaded images, and Networks contains all created networks. I won't go into detail about these two. Then comes the most important Containers interface:

Compared with Docker Desktop, the biggest advantage of Portainer is what you can do after clicking into a specific Docker container. For example, I click to enter the first one, bind9:

Configure public network access

If you want to publish to the public network, you need to choose the most suitable publishing method based on your actual environment and the reverse proxy you use. You can refer to several of my previous articles:
1、Docker Series: Building Your Own Reverse Proxy Based on NPM Using Docker
2、Linux Panel Series: Configuring Reverse Proxy and Publishing Using Non-443 Ports
3、Home Data Center Series: Getting Cloudflare for Free via Domestic ICP-Filed Cloud Hosts to Achieve Fast Access to Domestic Sites from Abroad
4、Home Data Center Series: Getting Cloudflare for Free via Home Broadband Without Public IP to Achieve Fast Website Building (Universal)

Among them, the 1st and 2nd methods are suitable for environments with a public IP but without a legal 443 port (home broadband, non-filed cloud hosts), where non-standard ports need to be added after the URL (if using Cloudflare to build a website, no port needs to be added, but you need to customize the origin server port, which you can refer to:Home Data Center Series: Solving the Problem of Having a Public IP but No Legal 80 or 443 Ports for Website Building via Cloudflare's Origin Rules). The 3rd method is suitable for cloud hosts with ICP filing, and the 4th method is suitable for all environments (including environments without a public IP), which is also my recommended method (regardless of whether your environment has a public IP, because this method does not require running HTTPS traffic directly on the public network).

View Related Categories · 3 Matches
📌 Content Structure Prompt:
This content is part of the following knowledge map, where you can view the complete content path: Blog Knowledge Map。
📎 Related Articles
Share this article
The blog content is original, please indicate the source when reposting! The RSS address of the blog is:https://blog.tangwudi.com/feed, welcome to subscribe; if needed, you can join theTelegram Groupto discuss questions together.
No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗ
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Kaomoji
Emoji
Little Dinosaur
Flower!
Previous
Next
       

👋 Welcome to “Wudi's Personal Blog”

Here, long-term exploration is mainly carried out around the following directions:

🧱 Personal Digital Infrastructure and Blog System Construction
☁️ Cloudflare and Network Architecture Practice
🧠 AI and Knowledge System Exploration
🛡️ Network Security and Access Optimization
🎵 Music and Sound Cognition
👁️ Cognitive Perspectives and Worldviews