在云原生技术席卷全球的今天,Docker 早已成为每一位开发者和运维工程师的必备技能。它将应用与环境彻底解耦,让“在我机器上能跑”的玄学问题成为历史。正如 内网笔记 在日常构建高可用架构时所坚持的——一个稳固、纯净的基础环境是万丈高楼的基石。
本文将摒弃枯燥的官方文档风格,手把手带你在 Debian (Stable) 或 Ubuntu (LTS) 系统上,构建一套标准化、高性能的容器运行环境。
🔍 核心概念:为什么我们需要它?
- Docker:如果说服务器是货轮,那么 Docker 就是标准化的集装箱。它允许你在隔离的环境中运行软件,既不污染宿主机的系统环境,又能确保跨平台的行为一致性。
- Docker Compose:当你的应用不再是单一的容器,而是由数据库、缓存、Web 服务组成的复杂集群时,Docker Compose 就是那位指挥官。它通过一个简单的 YAML 文件,即可一键编排并启动所有服务,大幅提升工作流效能。
🛠️ 第一步:环境预处理
在开始一切操作之前,请确保你拥有系统的至高权限。这是构建基础设施的必要条件。
切换至 Root 用户
为了避免频繁输入 sudo ,建议直接切换到 root 环境:
sudo -i
# 或者
su root 更新系统并安装基础依赖
我们需要先打磨好地基,确保 curl 、 gnupg 等核心工具已就位:
apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates 📦 第二步:配置软件源 (Repositories)
为了获取最新且稳定的 Docker 版本,我们需要手动配置官方源。根据你的网络环境(国内/海外)及操作系统类型,选择以下 其中一种 方案执行。
方案 A:官方源(推荐海外服务器使用)
Debian 用户:
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 用户:
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 用户:
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 用户:
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 💡 内网笔记小贴士:Debian 用户还可以选择使用 extrepo 这一神器来简化操作:
sudo apt update
sudo apt install extrepo -y
sudo extrepo enable docker-ce 🚀 第三步:安装核心引擎
万事俱备,现在我们一键安装 Docker 核心组件以及最新的 Compose 插件。
apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin 验证安装成果
执行以下命令,看到类似输出即代表安装成功:
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,可以将其加入用户组:
apt install docker-ce-rootless-extras
sudo usermod -aG docker www-data Docker Compose 的使用姿势
得益于我们安装了 docker-compose-plugin ,现在你可以直接使用原生命令:
# 检查版本
docker compose version
# 输出示例:Docker Compose version v2.39.1 ⚠️ 特殊需求说明:如果你的老旧脚本强依赖 docker-compose (带连字符)命令,可以手动从 GitHub 安装独立二进制文件:
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 :
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 支持,顺应现代网络架构。
最后,重启服务使配置生效:
systemctl restart docker 至此,一个稳健、安全且高性能的 Docker 容器环境已经部署完毕。无论是部署博客、网盘还是复杂的微服务架构,你都已经打下了最坚实的基础。欢迎持续关注 innnets.com,我们将继续为你带来更多实用的云原生运维技巧。
