Debian 12与Ubuntu安装Docker详解

在云原生技术席卷全球的今天,Docker 早已成为每一位开发者和运维工程师的必备技能。它将应用与环境彻底解耦,让“在我机器上能跑”的玄学问题成为历史。正如 内网笔记 在日常构建高可用架构时所坚持的——一个稳固、纯净的基础环境是万丈高楼的基石。
本文将摒弃枯燥的官方文档风格,手把手带你在 Debian (Stable) 或 Ubuntu (LTS) 系统上,构建一套标准化、高性能的容器运行环境。

🔍 核心概念:为什么我们需要它?

  • Docker:如果说服务器是货轮,那么 Docker 就是标准化的集装箱。它允许你在隔离的环境中运行软件,既不污染宿主机的系统环境,又能确保跨平台的行为一致性。
  • Docker Compose:当你的应用不再是单一的容器,而是由数据库、缓存、Web 服务组成的复杂集群时,Docker Compose 就是那位指挥官。它通过一个简单的 YAML 文件,即可一键编排并启动所有服务,大幅提升工作流效能。

🛠️ 第一步:环境预处理

在开始一切操作之前,请确保你拥有系统的至高权限。这是构建基础设施的必要条件。

切换至 Root 用户

为了避免频繁输入  sudo ,建议直接切换到 root 环境:

Bash
sudo -i
# 或者
su root

更新系统并安装基础依赖

我们需要先打磨好地基,确保  curl 、 gnupg  等核心工具已就位:

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

📦 第二步:配置软件源 (Repositories)

为了获取最新且稳定的 Docker 版本,我们需要手动配置官方源。根据你的网络环境(国内/海外)及操作系统类型,选择以下 其中一种 方案执行。

方案 A:官方源(推荐海外服务器使用)

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

方案 B:清华 TUNA 镜像源(推荐国内服务器使用)

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://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://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://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
Bash
sudo apt update
sudo apt install extrepo -y
sudo extrepo enable docker-ce

🚀 第三步:安装核心引擎

万事俱备,现在我们一键安装 Docker 核心组件以及最新的 Compose 插件。

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

验证安装成果

执行以下命令,看到类似输出即代表安装成功:

Bash
docker version

预期输出摘要(版本号可能会随时间更新):

纯文字
Client: Docker Engine - Community
Version: 28.3.3
...
Server: Docker Engine - Community
Engine:
 Version: 28.3.3
...

🔐 第四步:权限与安全配置

非 Root 用户运行 Docker

为了安全起见,通常我们不建议直接使用 root 运行容器。如果你需要让特定用户(如  www-data )管理 Docker,可以将其加入用户组:

Bash
apt install docker-ce-rootless-extras
sudo usermod -aG docker www-data

Docker Compose 的使用姿势

得益于我们安装了  docker-compose-plugin ,现在你可以直接使用原生命令:

Bash
# 检查版本
docker compose version
# 输出示例:Docker Compose version v2.39.1
Bash
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

⚡ 第五步:专家级性能优化(重要)

这是许多新手容易忽略的一步。内网笔记 强烈建议修改 Docker 的默认配置,以开启 IPv6 支持并防止日志文件撑爆磁盘。
请直接复制以下命令块执行,它会覆写  /etc/docker/daemon.json :

Bash
cat > /etc/docker/daemon.json << EOF
{
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "20m",
        "max-file": "3"
    },
    "userland-proxy": false,
    "ipv6": true,
    "fixed-cidr-v6": "fdb::/64",
    "experimental": true,
    "ip6tables": true
}
EOF

配置解读:

  • log-opts : 将容器日志限制为单文件 20MB,最多保留 3 个副本。这能有效防止某个容器疯狂报错导致服务器硬盘被写满。
  • ipv6 : 开启 IPv6 支持,顺应现代网络架构。

最后,重启服务使配置生效:

Bash
systemctl restart docker

至此,一个稳健、安全且高性能的 Docker 容器环境已经部署完毕。无论是部署博客、网盘还是复杂的微服务架构,你都已经打下了最坚实的基础。欢迎持续关注 innnets.com,我们将继续为你带来更多实用的云原生运维技巧。