Ubuntu系统下Docker容器化环境部署全流程指南

一、环境准备与前置条件

在开始部署前需确认系统满足以下要求:

  1. 操作系统版本:Ubuntu 20.04 LTS/22.04 LTS(推荐长期支持版本)
  2. 用户权限:需具备sudo权限的普通用户或root账户
  3. 网络连接:稳定互联网访问能力(配置镜像加速后可不依赖外网)
  4. 依赖工具:curl、ca-certificates等基础组件

建议通过以下命令验证系统架构:

  1. dpkg --print-architecture
  2. # 正常应返回amd64/arm64等架构标识

二、Docker官方存储库配置

2.1 添加安全认证密钥

通过GPG密钥机制确保软件包来源可信:

  1. # 创建密钥存储目录(标准权限设置)
  2. sudo install -m 0755 -d /etc/apt/keyrings
  3. # 下载官方密钥并设置安全权限
  4. sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  5. -o /etc/apt/keyrings/docker.asc
  6. sudo chmod a+r /etc/apt/keyrings/docker.asc

关键点:密钥文件权限设置为0644(所有用户可读)符合最小权限原则

2.2 配置APT软件源

创建专用软件源列表文件,实现版本精准控制:

  1. echo \
  2. "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  3. https://download.docker.com/linux/ubuntu \
  4. $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  5. sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

执行后建议立即更新软件包索引:

  1. sudo apt-get update

三、核心组件安装

3.1 基础组件安装

推荐安装组合包含:

  • docker-ce:容器运行时引擎
  • docker-ce-cli:命令行管理工具
  • containerd.io:底层容器运行时
  • 构建工具插件(可选)

执行安装命令:

  1. sudo apt-get install -y \
  2. docker-ce docker-ce-cli containerd.io \
  3. docker-buildx-plugin docker-compose-plugin

参数说明:-y参数自动确认安装,生产环境建议先使用apt-cache policy查看可用版本

3.2 安装后验证

执行以下命令验证服务状态:

  1. sudo systemctl status docker
  2. # 正常应显示active (running)状态

四、国内网络环境优化方案

4.1 镜像加速配置原理

通过配置registry-mirrors参数,将镜像拉取请求重定向至国内加速节点。典型配置结构如下:

  1. {
  2. "registry-mirrors": [
  3. "https://<加速节点1>",
  4. "https://<加速节点2>"
  5. ]
  6. }

4.2 配置文件修改

使用文本编辑器创建或修改配置文件:

  1. sudo vim /etc/docker/daemon.json

推荐配置模板(含双加速源):

  1. {
  2. "registry-mirrors": [
  3. "https://<主流云服务商加速地址>",
  4. "https://<开源社区加速地址>"
  5. ]
  6. }

修改后需重启服务生效:

  1. sudo systemctl restart docker

4.3 加速源选择建议

  1. 企业内网:优先使用自建镜像仓库
  2. 开发环境:选择2-3个公共加速源实现冗余
  3. 生产环境:建议结合CDN加速和私有仓库

五、功能验证与测试

5.1 基础功能测试

执行hello-world镜像测试:

  1. sudo docker run hello-world
  2. # 成功应显示"Hello from Docker!"欢迎信息

5.2 镜像加速验证

通过拉取镜像时间对比验证效果:

  1. time docker pull nginx:latest
  2. # 记录实际耗时,加速后应缩短50%以上

5.3 常用管理命令

命令 功能说明
docker ps -a 查看所有容器状态
docker images 列出本地镜像
docker system df 显示资源使用情况
docker version 查看版本信息

六、生产环境部署建议

  1. 用户组管理:将开发人员加入docker用户组避免频繁使用sudo
    1. sudo usermod -aG docker $USER
  2. 资源限制:通过cgroup配置容器资源使用上限
  3. 日志轮转:配置logrotate管理容器日志文件
  4. 安全加固
    • 禁用特权模式容器
    • 定期更新内核补丁
    • 限制镜像来源为可信仓库

七、故障排查指南

7.1 常见问题处理

现象 可能原因 解决方案
无法连接仓库 网络代理设置错误 检查/etc/environment中的代理配置
权限拒绝错误 未加入docker用户组 执行usermod命令或使用sudo
镜像拉取缓慢 未配置加速源 修改daemon.json并重启服务

7.2 日志分析

关键日志路径:

  • 服务日志:journalctl -u docker.service
  • 容器日志:/var/lib/docker/containers/<容器ID>/<容器ID>-json.log

通过本指南的系统化部署,运维人员可在30分钟内完成从环境准备到生产就绪的完整流程。建议定期访问官方文档获取最新版本信息,并结合企业实际需求制定容器管理规范。对于大规模部署场景,可考虑集成CI/CD流水线实现镜像自动构建与分发。