Portainer 可视化容器管理界面
Portainer 是一款开源的容器管理工具,提供直观的 Web 界面来管理 Docker、Docker Swarm 和 Kubernetes 环境。对于不习惯命令行操作的用户,Portainer 让容器管理变得简单高效。本文将介绍如何在搬瓦工 VPS 上部署 Portainer 并使用它管理容器。
一、环境要求
- Docker:需要先安装 Docker。
- 内存:Portainer 仅需约 128MB 额外内存。
- 端口:默认使用 9443(HTTPS)和 9000(HTTP)。
二、安装 Portainer CE
2.1 创建数据卷
docker volume create portainer_data
2.2 启动 Portainer
docker run -d \
--name portainer \
--restart=always \
-p 8000:8000 \
-p 9443:9443 \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
2.3 访问管理界面
在浏览器中访问 https://你的IP:9443 或 http://你的IP:9000。首次访问需要设置管理员账号和密码(密码至少 12 个字符)。
三、使用 Docker Compose 部署
version: '3.8'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "8000:8000"
- "9443:9443"
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
docker compose up -d
四、在 Docker Swarm 中部署
如果你已经搭建了 Docker Swarm 集群:
docker stack deploy -c portainer-stack.yml portainer
portainer-stack.yml 内容:
version: '3.8'
services:
agent:
image: portainer/agent:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints:
- node.platform.os == linux
portainer:
image: portainer/portainer-ce:latest
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- "9443:9443"
- "9000:9000"
volumes:
- portainer_data:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
networks:
agent_network:
driver: overlay
attachable: true
volumes:
portainer_data:
五、功能概览
5.1 Dashboard
登录后可以看到环境概览,包括:
- 运行中的容器数量。
- 镜像、卷、网络的统计信息。
- 资源使用情况。
5.2 容器管理
通过 Web 界面可以:
- 创建、启动、停止、删除容器。
- 查看容器日志和统计信息。
- 进入容器终端(类似 docker exec)。
- 管理容器的环境变量、端口映射和卷挂载。
5.3 应用模板
Portainer 内置了大量应用模板,点击即可一键部署常用应用,如 WordPress、MySQL、Redis、Nginx 等。
5.4 Stack 管理
支持通过 Web 编辑器编写 Docker Compose 文件并部署 Stack,非常方便管理多容器应用。
六、添加远程环境
Portainer 支持管理多个 Docker 环境:
6.1 通过 Agent 添加
在远程节点上部署 Portainer Agent:
docker run -d \
--name portainer_agent \
--restart=always \
-p 9001:9001 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:latest
在 Portainer 界面中添加环境,选择"Agent"类型,输入远程节点的 IP 和 9001 端口。
6.2 通过 Docker API 添加
在远程节点上开启 Docker API(需注意安全性):
cat > /etc/docker/daemon.json <<EOF
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
EOF
systemctl restart docker
七、配置反向代理
建议通过 Nginx 反向代理并启用 HTTPS:
server {
listen 80;
server_name portainer.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name portainer.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/portainer.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/portainer.yourdomain.com/privkey.pem;
location / {
proxy_pass https://127.0.0.1:9443;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
八、用户与团队管理
Portainer 支持多用户管理:
- 创建用户:在 Settings → Users 中添加用户。
- 创建团队:将用户分组为团队,统一管理权限。
- Access Control:为不同用户/团队分配不同环境的访问权限。
- LDAP 集成:支持与企业 LDAP/AD 集成实现统一认证。
九、常见问题
无法连接到 Docker
确保 Docker socket 已正确挂载:
ls -la /var/run/docker.sock
docker logs portainer
忘记管理员密码
需要重置 Portainer 数据卷:
docker stop portainer
docker rm portainer
docker volume rm portainer_data
然后重新创建数据卷和容器。
Portainer CE 与 BE 的区别
CE(Community Edition)为免费开源版,功能足够个人和小团队使用。BE(Business Edition)提供额外的企业功能如 RBAC、活动日志、Registry 管理等。
总结
Portainer 为 Docker 容器管理提供了直观易用的图形界面,大幅降低了容器管理的门槛。搭配 Docker 或 Docker Swarm 使用效果最佳。选购搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 享受 6.77% 折扣。