
1. 项目概述最近在Ubuntu Server 25.10上部署Docker时遇到了一些意料之外的坑记录下完整安装过程和问题解决方案。虽然官方文档提供了基础安装指南但在实际生产环境中总会遇到各种依赖冲突、权限问题和网络配置的麻烦。本文将分享从零开始的安全安装流程以及如何避免常见的配置陷阱。2. 环境准备2.1 系统要求检查首先确认系统版本和架构lsb_release -a uname -mUbuntu 25.10需要特别注意内核版本兼容性。建议使用5.15或更新的LTS内核分支。如果使用自定义内核需要确保已启用以下模块overlay2aufsbr_netfilter2.2 依赖项处理安装基础工具链sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg关键点必须使用HTTPS源确保系统时间同步chrony或ntpd关闭swap分区docker运行时有性能影响3. Docker安装流程3.1 官方源配置添加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/null3.2 安装引擎更新并安装组件sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin验证安装sudo docker run hello-world4. 配置优化4.1 存储驱动选择检查当前驱动docker info | grep Storage Driver推荐配置/etc/docker/daemon.json{ storage-driver: overlay2, log-driver: json-file, log-opts: { max-size: 10m, max-file: 3 } }4.2 用户权限管理将当前用户加入docker组sudo usermod -aG docker $USER newgrp docker重要安全提示不要直接使用root操作容器限制/var/lib/docker目录权限定期清理无用镜像和卷5. 网络配置5.1 防火墙设置UFW放行必要端口sudo ufw allow 2375/tcp sudo ufw allow 2376/tcp sudo ufw reload5.2 自定义网桥创建隔离网络docker network create --driverbridge --subnet172.28.0.0/16 --gateway172.28.0.1 mynet验证网络连通性docker run --rm --netmynet alpine ping -c 4 172.28.0.16. 常见问题解决6.1 镜像拉取失败典型报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled解决方案配置国内镜像源修改DNS为8.8.8.8或114.114.114.114检查IPv6是否干扰6.2 容器启动报错典型场景docker: Error response from daemon: failed to create shim task: OCI runtime create failed排查步骤检查runtime配置验证cgroup挂载点更新containerd到最新版7. 生产环境建议7.1 资源限制限制容器资源使用docker run -it --cpus.5 --memory512m ubuntu监控命令docker stats7.2 日志管理推荐日志方案ELK栈集中收集日志轮转策略敏感信息过滤8. 维护技巧8.1 定期维护清理无用数据docker system prune -af检查容器健康状态docker ps -q | xargs docker inspect --format{{.State.Health.Status}}8.2 备份策略关键目录备份/var/lib/docker/volumes/etc/docker重要容器的配置文件建议使用rsync增量备份到远程存储。对于关键业务容器建议配置每日快照。