本文详细介绍了Docker服务管理面板 Portainer 的部署与使用,包括基础部署配置、高级特性配置、用户认证、监控集成、备份策略以及最佳实践等核心内容。文档提供了完整的配置示例和实践建议,适合运维团队搭建企业级Docker容器管理平台参考。
基础部署配置
前提条件
系统要求:
- CPU: 2核心及以上
- 内存: 4GB及以上
- 磁盘: 20GB及以上
- 网络: 100Mbps及以上
环境要求:
- Docker 20.10.x及以上
- Docker Compose 2.x及以上
- 服务器端口要求:
- HTTP: 9000
- HTTPS: 9443(可选)
- Agent: 9001
- Edge: 8000(可选)
服务端部署
- 创建部署目录:
mkdir -p /data/portainer/data
|
- 部署配置文件:
version: '3' services: portainer: image: portainer/portainer-ce:latest container_name: portainer restart: always security_opt: - no-new-privileges:true volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - /data/portainer/data:/data ports: - "9000:9000" - "9443:9443" environment: - TZ=Asia/Shanghai
|
- 启动服务:
Agent部署
- 创建Agent配置:
version: '3' services: portainer_agent: image: portainer/agent:latest container_name: portainer_agent restart: always volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - /var/lib/docker/volumes:/var/lib/docker/volumes ports: - "9001:9001" environment: - TZ=Asia/Shanghai
|
- 启动Agent:
高级配置
SSL证书配置
- 自签名证书:
openssl req -x509 -nodes -days 3650 \ -newkey rsa:2048 -keyout portainer.key \ -out portainer.crt
|
- 证书配置:
services: portainer: volumes: - ./portainer.crt:/certs/portainer.crt:ro - ./portainer.key:/certs/portainer.key:ro command: --ssl --sslcert /certs/portainer.crt --sslkey /certs/portainer.key
|
高可用配置
- 集群模式配置:
version: '3' services: portainer1: image: portainer/portainer-ce command: -H tcp://tasks.agent:9001 --cluster ports: - "9000:9000" volumes: - portainer_data:/data deploy: replicas: 2 placement: constraints: [node.role == manager]
agent: image: portainer/agent volumes: - /var/run/docker.sock:/var/run/docker.sock - /var/lib/docker/volumes:/var/lib/docker/volumes deploy: mode: global placement: constraints: [node.platform.os == linux]
volumes: portainer_data:
|
资源限制
- 容器资源限制:
services: portainer: deploy: resources: limits: cpus: '1' memory: 2G reservations: cpus: '0.5' memory: 1G
|
功能配置
用户认证
- LDAP集成:
environment: - LDAP_ENABLED=true - LDAP_SERVER=ldap://ldap.example.com - LDAP_BIND_DN=cn=admin,dc=example,dc=com - LDAP_BIND_PASSWORD=password - LDAP_SEARCH_BASE=dc=example,dc=com
|
- OAuth2配置:
environment: - OAUTH_PROVIDER=github - OAUTH_CLIENT_ID=your_client_id - OAUTH_CLIENT_SECRET=your_client_secret - OAUTH_SCOPES=read:org,user:email
|
监控集成
- Prometheus集成:
services: portainer: labels: - "prometheus.enable=true" - "prometheus.port=9000" - "prometheus.path=/metrics"
|
- Grafana仪表板配置:
{ "dashboard": { "id": null, "title": "Portainer Dashboard", "tags": ["docker", "portainer"], "timezone": "browser", "panels": [ { "title": "Container CPU Usage", "type": "graph", "datasource": "Prometheus" } ] } }
|
备份策略
- 数据备份脚本:
#!/bin/bash BACKUP_DIR="/backup/portainer" DATE=$(date +%Y%m%d)
mkdir -p ${BACKUP_DIR}/${DATE}
tar czf ${BACKUP_DIR}/${DATE}/portainer_data.tar.gz /data/portainer/data/
find ${BACKUP_DIR} -type d -mtime +30 -exec rm -rf {} \;
|
最佳实践
安全建议
访问控制:
- 启用HTTPS
- 配置防火墙规则
- 实施IP白名单
- 启用双因素认证
容器安全:
- 限制容器资源
- 使用非root用户
- 配置安全选项
- 定期更新镜像
性能优化
系统优化:
- 使用SSD存储
- 调整系统参数
- 配置日志轮转
- 优化网络设置
容器优化:
- 合理分配资源
- 使用数据卷
- 优化镜像大小
- 配置健康检查
总结
Portainer提供了直观的Docker管理界面,通过合理配置可以满足企业级容器管理需求。本文档涵盖了从基础部署到高级特性的完整配置指南,建议根据实际需求选择性启用功能。