Debian/Ubuntu 安装 Docker 与 Docker Compose 完整教程(国内源适配)

本文将详细指导如何在 Debian 和 Ubuntu 系统中安装 Docker 及 Docker Compose,适用于 Debian Stable 与 Ubuntu LTS 版本,步骤清晰且适配国内网络环境。

一、基础概念说明

1. 什么是 Docker?

Docker 是一款主流容器化技术,能在服务器上快速创建独立容器,让软件在不污染宿主机环境的前提下运行,无需手动配置复杂依赖。开源 Docker 社区持续优化该技术,免费向所有用户开放。

2. 什么是 Docker Compose?

传统方式下,运维人员需通过  docker run  命令逐个启动容器,容器数量增多时,难以记忆所有运行参数。Docker Compose 可解决这一问题:它是一款用于在单主机上定义、运行多 Docker 容器的工具,通过 YAML 文件配置应用服务,仅需一条命令即可创建并启动所有关联服务,大幅简化多依赖容器的管理与部署流程。

二、安装前准备

所有操作需在  root  用户权限下完成,先通过以下命令切换至  root  用户:

Bash
sudo -i  # 或执行 su root(部分系统需输入 root 密码)

三、安装 Docker(适配国内网络)

步骤 1:安装必要依赖包

先更新系统软件源并安装基础工具,确保后续操作正常执行:

Bash
apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

步骤 2:添加 Docker 软件源与 GPG 公钥

根据服务器所在地区选择对应源,国内机器优先选清华 TUNA 源(解决官方源访问慢、GPG Key 超时问题),海外机器可选官方源。 选项 A:国内机器(清华 TUNA 源)

适配 Debian 系统:

Bash
curl -sSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

适配 Ubuntu 系统:

Bash
curl -sSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

选项 B:海外机器(Docker 官方源)

适配 Debian 系统:

Bash
curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

适配 Ubuntu 系统:

Bash
curl -sSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list

步骤 3:安装 Docker 核心组件

更新软件源后,安装 Docker CE(社区版)、命令行工具及 Docker Compose 插件:

Bash
apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

步骤 4:验证 Docker 安装

执行以下命令,若显示 Client 与 Server 版本信息(类似下方示例),说明安装成功:

Bash
docker version

示例输出:

Bash
Client: Docker Engine - Community
 Version:           28.3.3
 API version:       1.51
 Go version:        go1.24.5
 Git commit:        980b856
 Built:             Fri Jul 25 11:34:00 2025
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          28.3.3
  API version:      1.51 (minimum version 1.24)
  Go version:       go1.24.5
  Git commit:       bea959c
  Built:            Fri Jul 25 11:34:00 2025
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          1.7.27
  GitCommit:        05044ec0a9a75232cad458027ca83437aae3f4da
 runc:
  Version:          1.2.5
  GitCommit:        v1.2.5-0-g59923ef
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

四、配置 Docker 非 root 访问(可选)

若需特定用户(如  www-data )以 rootless 模式运行 Docker,可将该用户加入  docker  组,避免每次执行 Docker 命令都需  sudo :

Bash
# 安装 rootless 扩展组件
apt install docker-ce-rootless-extras
# 将 www-data 用户加入 docker 组(替换为目标用户名即可)
sudo usermod -aG docker www-data

五、Docker Compose 相关操作

1. 验证插件版 Compose(默认已安装)

由于前文已安装  docker-compose-plugin ,Docker 会自带  docker compose  命令(兼容新版 Docker 生态),执行以下命令验证版本:

Bash
docker compose version

示例输出:

Bash
Docker Compose version v2.39.1

2. 单独安装 Docker Compose(兼容旧环境)

若需使用旧版  docker-compose  命令(适配部分老脚本),可通过 GitHub 安装独立版本:

Bash
# 下载最新版 Docker Compose 到指定目录
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
# 赋予可执行权限
chmod +x /usr/local/bin/docker-compose

验证独立版安装:

Bash
docker-compose version

示例输出:

Bash
Docker Compose version v2.39.1

六、优化 Docker 配置(避免日志占满硬盘)

以下配置可开启容器 IPv6 功能,并限制日志文件大小(防止日志过量占用硬盘,亲测有效):

1. 创建/修改 Docker 配置文件:

Bash
cat > /etc/docker/daemon.json << EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",  # 单日志文件最大 20MB
        "max-file": "3"     # 最多保留 3 个日志文件
    },
    "userland-proxy": false,
    "ipv6": true,
    "fixed-cidr-v6": "fdb::/64",
    "experimental": true,
    "ip6tables": true
}
EOF

2. 重启 Docker 服务使配置生效:

Bash
systemctl restart docker

至此,Docker 与 Docker Compose 已完成安装与优化。后续可基于 Docker 部署各类应用,更多具体应用的部署教程将在后续文章中逐步介绍。