命令敲 Docker 太费劲?容器多了记不住端口和状态?想给同事/小白开个管理入口?Portainer 是目前最流行的 Docker 可视化管理面板:网页上点点点就能部署容器、管理镜像、看日志、配网络,还自带应用模板。这篇文章带你从零装好 Portainer,并把它常用功能全部跑起来。
一、Portainer 是什么?解决什么问题
Portainer 本身就是一个跑在 Docker 里的容器,通过调用 Docker API 管理本机(或远程)的容器环境。装好之后,浏览器打开一个管理界面,所有 Docker 操作都可以用鼠标完成。
| 功能 | 说明 |
|---|---|
| 容器管理 | 创建、启动、停止、重启、删除容器,实时看状态和日志 |
| 镜像管理 | 拉取、删除镜像,查看镜像详情 |
| 应用模板 | 一键部署 Nginx、MySQL、WordPress 等常用应用 |
| 网络管理 | 创建/管理 Docker 网络,容器互联 |
| 数据卷管理 | 管理 Volume,容器数据持久化 |
| 日志查看 | 网页直接看容器日志,不用再 ssh 敲 docker logs |
二、安装 Portainer(两条命令搞定)
前提:已安装 Docker。
docker --version # 确认 Docker 已装好
创建数据卷并启动 Portainer:
docker volume create portainer_data
docker run -d --name portainer \
-p 9000:9000 \
-p 8000:8000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
参数说明:
| 参数 | 作用 |
|---|---|
| -p 9000:9000 | 管理界面端口 |
| -p 8000:8000 | Portainer Agent 通信端口(管理远程主机时用) |
| --restart=always | 容器挂了自动重启 |
| -v /var/run/docker.sock | 挂载 Docker 套接字,Portainer 才能管理 Docker |
| -v portainer_data | 配置数据持久化,重装面板不丢设置 |
查看是否启动成功:
docker ps | grep portainer
三、首次登录配置
第 1 步:浏览器访问 http://服务器IP:9000
第 2 步:创建管理员账号(用户名 + 强密码,这是唯一的管理员)
第 3 步:选择环境(Endpoint)
- 本机管理:选择"本地 Docker"(Local),Portainer 会自动连接本机的 docker.sock;
- 远程管理:选"Agent"或"Edge Agent",在其他机器上跑一个 Portainer Agent 容器,填它的 IP:8000 即可。
第 4 步:进入主界面,看到仪表盘(总览)就配置完成了。
四、常用功能实战
1. 容器管理:部署一个 Nginx 试试
- 左侧菜单 -> 容器 -> 添加容器(Add container);
- 名称填
web-nginx,镜像填nginx:latest; - 端口映射:主机端口填 8080,容器端口填 80;
- 设置卷:把宿主机 /www 挂载到容器 /usr/share/nginx/html;
- 点"部署容器"(Deploy the container);
- 浏览器访问
http://IP:8080就能看到 Nginx 欢迎页。
之后在这个容器右侧就能操作:启动/停止/重启/查看日志/进入控制台(Console),全程不用敲命令。
2. 镜像管理:拉取指定版本
- 镜像 -> 拉取镜像(Pull image);
- 输入镜像名如
mysql:8.0、redis:7-alpine,点拉取; - 拉取完直接在列表里点"部署容器"即可快速创建。
3. 应用模板:一键部署
左侧 -> 应用模板(App Templates),内置了 Nginx、MySQL、WordPress、Redis 等模板,选一个、填点参数、部署,比手动 docker run 省事很多。
4. 查看日志与监控
- 容器 -> 选择容器 -> 日志(Logs),实时查看 stdout 日志,支持时间筛选;
- 容器 -> 统计(Stats),看该容器的 CPU/内存实时占用。
5. 多台服务器统一管理(Agent 模式)
其他服务器上跑 Agent 容器:
docker run -d --name portainer_agent \
-p 8001:8001 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:latest
主面板上添加环境: 环境 -> 添加环境 -> Agent,填目标机器 IP 和 8001 端口。之后就能在一个面板里切换管理多台服务器的 Docker。
五、开启 HTTPS 访问(推荐)
面板暴露在公网最好加 HTTPS。Portainer 支持直接启用 SSL:
docker run -d --name portainer \
-p 9443:9443 \
-p 8000:8000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
新版 Portainer 会自动生成自签证书,访问 https://IP:9443 即可。更专业的做法是把 9000 放到 Nginx 反代后面,用 Let's Encrypt 证书,只暴露 443 端口。
六、安全注意事项(重要)
- 别把 9000 端口裸奔公网:Portainer 是最高权限管理入口,一定要改默认端口或加反代+HTTPS,并设置强密码;
- 开启两步验证:用户 -> 设置,启用 2FA;
- 限制来源 IP:用防火墙只放行自己的 IP 访问管理端口:
iptables -A INPUT -p tcp -s 1.2.3.4 --dport 9000 -j ACCEPT
iptables -A INPUT -p tcp --dport 9000 -j DROP
七、常见问题排查
1. 页面打不开
确认容器在跑(docker ps)、9000 端口已放行(ss -tlnp | grep 9000,防火墙放行)。
2. 提示 Docker socket 连接失败
检查启动命令有没有挂载 docker.sock,重启容器:
docker restart portainer
3. 忘记管理员密码
Portainer 密码在数据卷里,最省事的方法:备份数据卷后删除容器重建,重新设置账号。
docker rm -f portainer
docker volume rm portainer_data
docker run -d --name portainer ... # 重新启动,注意这会清空之前的配置
4. 中文乱码/界面语言
Portainer 界面默认英文,最新版本在 设置(Settings)里可以选择界面语言,部分版本已内置中文。
总结
Portainer 是 Docker 用户的"图形化 Docker 命令",安装就两条命令,日常部署容器、看日志、管镜像全在网页完成,多台服务器还能一个面板统一管理。记住:装好后第一时间改端口、开 HTTPS、设强密码,别把管理面板裸奔到公网。配合 Docker Compose,个人服务器和团队服务器都能管得明明白白。


