Docker 服务管理面板- UI 界面部署指南

       本文详细介绍了Docker服务管理面板 Portainer 的部署与使用,包括基础部署配置、高级特性配置、用户认证、监控集成、备份策略以及最佳实践等核心内容。文档提供了完整的配置示例和实践建议,适合运维团队搭建企业级Docker容器管理平台参考。

基础部署配置

前提条件

  1. 系统要求:

    • CPU: 2核心及以上
    • 内存: 4GB及以上
    • 磁盘: 20GB及以上
    • 网络: 100Mbps及以上
  2. 环境要求:

    • Docker 20.10.x及以上
    • Docker Compose 2.x及以上
    • 服务器端口要求:
      • HTTP: 9000
      • HTTPS: 9443(可选)
      • Agent: 9001
      • Edge: 8000(可选)

服务端部署

  1. 创建部署目录:
mkdir -p /data/portainer/data
  1. 部署配置文件:
# docker-compose.yml
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
  1. 启动服务:
docker-compose up -d

Agent部署

  1. 创建Agent配置:
# docker-compose.yml
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
  1. 启动Agent:
docker-compose up -d

高级配置

SSL证书配置

  1. 自签名证书:
openssl req -x509 -nodes -days 3650 \
-newkey rsa:2048 -keyout portainer.key \
-out portainer.crt
  1. 证书配置:
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

高可用配置

  1. 集群模式配置:
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:

资源限制

  1. 容器资源限制:
services:
portainer:
deploy:
resources:
limits:
cpus: '1'
memory: 2G
reservations:
cpus: '0.5'
memory: 1G

功能配置

用户认证

  1. 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
  1. OAuth2配置:
environment:
- OAUTH_PROVIDER=github
- OAUTH_CLIENT_ID=your_client_id
- OAUTH_CLIENT_SECRET=your_client_secret
- OAUTH_SCOPES=read:org,user:email

监控集成

  1. Prometheus集成:
services:
portainer:
labels:
- "prometheus.enable=true"
- "prometheus.port=9000"
- "prometheus.path=/metrics"
  1. Grafana仪表板配置:
{
"dashboard": {
"id": null,
"title": "Portainer Dashboard",
"tags": ["docker", "portainer"],
"timezone": "browser",
"panels": [
{
"title": "Container CPU Usage",
"type": "graph",
"datasource": "Prometheus"
}
]
}
}

备份策略

  1. 数据备份脚本:
#!/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 {} \;

最佳实践

安全建议

  1. 访问控制:

    • 启用HTTPS
    • 配置防火墙规则
    • 实施IP白名单
    • 启用双因素认证
  2. 容器安全:

    • 限制容器资源
    • 使用非root用户
    • 配置安全选项
    • 定期更新镜像

性能优化

  1. 系统优化:

    • 使用SSD存储
    • 调整系统参数
    • 配置日志轮转
    • 优化网络设置
  2. 容器优化:

    • 合理分配资源
    • 使用数据卷
    • 优化镜像大小
    • 配置健康检查

总结

Portainer提供了直观的Docker管理界面,通过合理配置可以满足企业级容器管理需求。本文档涵盖了从基础部署到高级特性的完整配置指南,建议根据实际需求选择性启用功能。