ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Ubuntu系统Docker与Portainer部署全指南

Ubuntu系统Docker与Portainer部署全指南 1. Docker与Portainer部署指南在当今的开发和运维环境中容器化技术已经成为不可或缺的一部分。作为一名长期使用容器技术的从业者我经常被问到如何快速搭建一个可靠的容器管理环境。本文将分享我在Ubuntu系统上部署Docker引擎和Portainer管理界面的完整流程包含从基础安装到高级配置的全部细节。2. 环境准备与Docker安装2.1 系统要求检查在开始安装前我们需要确保系统满足基本要求Ubuntu 20.04/22.04 LTS版本其他版本可能需要进行额外配置至少2GB内存4GB以上为佳20GB可用磁盘空间具有sudo权限的用户账户首先更新系统软件包sudo apt update sudo apt upgrade -y2.2 Docker引擎安装Docker提供了多种安装方式我推荐使用官方仓库安装这能确保获取最新稳定版本安装必要的依赖包sudo apt install -y apt-transport-https ca-certificates curl software-properties-common添加Docker官方GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg设置稳定版仓库echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null安装Docker引擎sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io验证安装是否成功sudo docker run hello-world提示如果看到Hello from Docker!消息说明安装成功。如果遇到权限问题可以将当前用户加入docker组sudo usermod -aG docker $USER然后重新登录。2.3 Docker服务配置优化安装完成后建议进行一些基础配置优化配置Docker守护进程sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json EOF { exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, storage-driver: overlay2 } EOF重启Docker服务使配置生效sudo systemctl restart docker sudo systemctl enable docker3. Portainer管理界面部署3.1 Portainer简介Portainer是一个轻量级的Docker管理UI它提供了直观的图形界面来管理Docker环境。相比命令行Portainer特别适合以下场景团队协作环境需要快速查看容器状态不熟悉Docker命令的新手需要集中管理多个Docker主机3.2 Portainer社区版安装我们将使用Docker来部署Portainer社区版创建Portainer使用的数据卷docker volume create portainer_data启动Portainer容器docker run -d -p 8000:8000 -p 9443:9443 \ --name portainer \ --restartalways \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest注意这里我们同时映射了8000和9443端口。8000端口用于Edge代理功能9443端口用于Web UI访问。3.3 初始配置与安全加固访问Portainer界面 打开浏览器访问https://服务器IP:9443首次访问会提示创建管理员账户。安全建议配置使用强密码至少12位包含大小写字母、数字和特殊字符启用HTTPSPortainer默认使用自签名证书配置会话超时时间建议15-30分钟定期备份portainer_data卷配置本地Docker环境 登录后Portainer会提示连接环境。选择Docker Standalone并点击Connect即可。4. 高级配置与优化4.1 镜像加速配置国内用户可能会遇到镜像拉取慢的问题可以通过配置镜像加速解决修改daemon.json文件sudo tee /etc/docker/daemon.json EOF { registry-mirrors: [ https://hub-mirror.c.163.com, https://mirror.baidubce.com ], exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, storage-driver: overlay2 } EOF重启Docker服务sudo systemctl restart docker4.2 Portainer业务配置模板配置 Portainer提供了应用模板功能可以快速部署常见应用。建议添加常用模板进入Settings App Templates添加官方模板库https://raw.githubusercontent.com/portainer/templates/master/templates.json用户与团队管理 对于生产环境建议配置细粒度的访问控制创建不同角色的用户管理员、运维、开发等配置资源访问限制设置团队并分配相应权限监控与告警 Portainer提供基础监控功能可以查看容器资源使用情况配置简单的告警规则查看容器日志5. 常见问题与解决方案5.1 Docker安装问题问题1依赖冲突解决方案sudo apt --fix-broken install sudo apt autoremove问题2无法启动docker服务检查命令sudo systemctl status docker journalctl -xe5.2 Portainer访问问题问题1无法访问Web界面检查步骤确认防火墙放行了9443端口检查容器是否正常运行docker ps -a查看容器日志docker logs portainer问题2忘记管理员密码重置方法docker stop portainer docker run --rm -v portainer_data:/data portainer/helper-reset-password docker start portainer5.3 性能优化建议限制容器资源docker update --memory 512M --memory-swap 1G 容器名清理无用资源docker system prune -a --volumes日志轮转配置 在/etc/docker/daemon.json中添加log-opts: { max-size: 50m, max-file: 3 }6. 生产环境部署建议在实际生产环境中部署时我建议考虑以下额外措施高可用部署使用Docker Swarm或Kubernetes集群部署多个Portainer实例并配置负载均衡定期备份Portainer数据卷安全加固配置TLS客户端证书认证启用审计日志定期更新Docker和Portainer版本监控集成配置Prometheus监控Docker指标使用Grafana展示监控数据设置关键指标告警备份策略# 备份Portainer数据 docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine tar czf /backup/portainer-backup-$(date %Y%m%d).tar.gz /data # 备份Docker配置 sudo tar czf docker-config-$(date %Y%m%d).tar.gz /etc/docker7. 扩展功能与进阶使用7.1 Portainer业务模板开发Portainer支持自定义模板可以简化团队内部常用应用的部署创建模板JSON文件{ version: 2, templates: [ { type: 1, title: WordPress Stack, description: WordPress with MySQL, note: Deploys a WordPress instance with a MySQL database, categories: [CMS], platform: linux, logo: https://portainer.io/images/logos/wordpress.png, repository: { url: https://github.com/portainer/templates, stackfile: stacks/wordpress/docker-compose.yml } } ] }在Portainer中添加自定义模板库7.2 API集成Portainer提供了完整的REST API可以实现自动化管理获取API密钥登录Portainer进入Users设置生成API密钥示例API调用获取容器列表curl -X GET \ -H X-API-Key: your-api-key \ https://your-portainer-url/api/endpoints/1/docker/containers/json7.3 多环境管理Portainer可以管理多个Docker环境添加新环境远程Docker主机需要开启TCP端口建议配置TLS在Portainer中添加新Endpoint配置访问凭证环境分组创建环境组如开发、测试、生产配置统一的访问策略8. 版本升级与维护8.1 Docker引擎升级检查当前版本docker version升级步骤sudo apt update sudo apt install --only-upgrade docker-ce docker-ce-cli containerd.io8.2 Portainer升级停止并删除旧容器docker stop portainer docker rm portainer拉取新版本镜像docker pull portainer/portainer-ce:latest重新创建容器使用原有数据卷docker run -d -p 8000:8000 -p 9443:9443 \ --name portainer \ --restartalways \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest8.3 定期维护任务建议设置以下定期维护任务资源清理每周docker system prune -f安全检查每月docker scan 镜像名备份验证每日# 验证备份文件完整性 tar tf portainer-backup-*.tar.gz
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表