Docker & Docker Compose 安装方案

Docker & Docker Compose 安装方案

    • [1. 环境信息](#1. 环境信息)
    • [2. 安装方案概述](#2. 安装方案概述)
      • [2.1 安装方式](#2.1 安装方式)
      • [2.2 安装组件](#2.2 安装组件)
      • [2.3 生产级配置](#2.3 生产级配置)
    • [3. 实施步骤](#3. 实施步骤)
      • [3.1 卸载旧版本(如有)](#3.1 卸载旧版本(如有))
      • [3.2 安装依赖包](#3.2 安装依赖包)
      • [3.3 添加 Docker 官方 GPG 密钥](#3.3 添加 Docker 官方 GPG 密钥)
      • [3.4 添加 Docker APT 仓库](#3.4 添加 Docker APT 仓库)
      • [3.5 安装 Docker Engine](#3.5 安装 Docker Engine)
      • [3.6 配置 Docker Daemon(生产级配置)](#3.6 配置 Docker Daemon(生产级配置))
      • [3.7 启动 Docker 并设置开机自启](#3.7 启动 Docker 并设置开机自启)
      • [3.8 配置用户权限](#3.8 配置用户权限)
      • [3.9 验证安装](#3.9 验证安装)
    • [4. 验证清单](#4. 验证清单)
    • [5. 常用命令参考](#5. 常用命令参考)
    • [6. 故障排查](#6. 故障排查)
      • [6.1 服务启动失败](#6.1 服务启动失败)
      • [6.2 权限问题](#6.2 权限问题)
      • [6.3 网络问题](#6.3 网络问题)
    • [7. 文档信息](#7. 文档信息)

1. 环境信息

项目
操作系统 Ubuntu 22.04.1 LTS (Jammy)
内核版本 5.15.0-164-generic
存储位置 /var/lib/docker (根分区,282G可用)
文件系统 XFS

2. 安装方案概述

2.1 安装方式

采用 Docker 官方 APT 仓库安装,确保获取最新稳定版本和安全更新。

2.2 安装组件

组件 说明
docker-ce Docker Engine 社区版
docker-ce-cli Docker 命令行工具
containerd.io 容器运行时
docker-buildx-plugin 构建扩展插件
docker-compose-plugin Docker Compose V2 插件

2.3 生产级配置

配置项 设置 说明
存储驱动 overlay2 Ubuntu 默认,性能最优
日志驱动 json-file 默认驱动,配置轮转限制
日志大小限制 100MB/文件,3个文件 防止日志占满磁盘
开机自启 启用 systemd 管理
用户权限 当前用户加入 docker 组 免 sudo 运行
镜像加速 国内镜像源 加速镜像拉取

3. 实施步骤

3.1 卸载旧版本(如有)

bash 复制代码
sudo apt-get remove -y docker docker-engine docker.io containerd runc 2>/dev/null || true

3.2 安装依赖包

bash 复制代码
sudo apt-get update
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

3.3 添加 Docker 官方 GPG 密钥

bash 复制代码
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

3.4 添加 Docker APT 仓库

bash 复制代码
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3.5 安装 Docker Engine

bash 复制代码
sudo apt-get update
sudo apt-get install -y \
    docker-ce \
    docker-ce-cli \
    containerd.io \
    docker-buildx-plugin \
    docker-compose-plugin

3.6 配置 Docker Daemon(生产级配置)

bash 复制代码
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "live-restore": true,
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
  ]
}
EOF

配置说明:

参数 说明
log-driver 日志驱动,json-file 为默认
max-size 单个日志文件最大 100MB
max-file 最多保留 3 个日志文件
storage-driver 存储驱动,overlay2 性能最优
live-restore 容器在 daemon 重启时保持运行
registry-mirrors 国内镜像加速器地址

3.7 启动 Docker 并设置开机自启

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable docker
sudo systemctl start docker

3.8 配置用户权限

bash 复制代码
sudo usermod -aG docker $USER

注意: 执行后需要重新登录或执行 newgrp docker 使权限生效。

3.9 验证安装

bash 复制代码
# 检查 Docker 版本
docker --version

# 检查 Docker Compose 版本
docker compose version

# 检查 Docker 服务状态
sudo systemctl status docker

# 运行测试容器
docker run --rm hello-world

4. 验证清单

检查项 预期结果 命令
Docker 版本 显示版本号 docker --version
Compose 版本 显示版本号 docker compose version
服务状态 active (running) systemctl status docker
开机自启 enabled systemctl is-enabled docker
用户权限 免 sudo 运行 docker ps
存储驱动 overlay2 `docker info
测试容器 Hello from Docker! docker run --rm hello-world

5. 常用命令参考

bash 复制代码
# 查看 Docker 详细信息
docker info

# 查看运行中的容器
docker ps

# 查看所有容器
docker ps -a

# 查看镜像列表
docker images

# 清理未使用资源
docker system prune -a

# 查看磁盘使用情况
docker system df

6. 故障排查

6.1 服务启动失败

bash 复制代码
sudo journalctl -xeu docker.service

6.2 权限问题

bash 复制代码
# 确认用户在 docker 组
groups $USER

# 重新加载组权限
newgrp docker

6.3 网络问题

bash 复制代码
# 检查 Docker 网络
docker network ls

# 重置 Docker 网络
sudo systemctl restart docker

7. 文档信息

项目
创建时间 2026-01-10
目标系统 Ubuntu 22.04.1 LTS
Docker 版本 29.1.4
Docker Compose 版本 v5.0.1
containerd 版本 2.2.1
相关推荐
weixin_4481199410 小时前
如何装docker
java·云原生·eureka
喵叔哟10 小时前
19.服务集成与通信
后端·docker·容器·服务发现
Ice星空11 小时前
Docker 镜像创建和管理以及 buildx 交叉编译
运维·docker·容器
飞翔沫沫情11 小时前
OpenEuler 发行版 二进制部署docker
docker·openeuler·容器引擎
Cyber4K11 小时前
【Kubernetes专项】Docker 容器部署及基本用法
运维·docker·云原生·容器
techzhi11 小时前
Docker 多架构镜像构建方案实施指南
docker·架构
暴躁的鱼11 小时前
docker运行可登录的gerrit容器
运维·docker·容器
赵文宇(温玉)11 小时前
Docker与VM的差异与最佳场景
docker·容器·eureka
techzhi11 小时前
docker compose和docker-compose的区别
运维·docker·容器