【硬核教程】AI 程序员必备:如何在云主机上正确部署 Docker(避坑指南)

0 阅读4分钟

【硬核教程】AI 程序员必备:如何在云主机上正确部署 Docker(避坑指南)

前言:作为一名 AI 大模型开发者,环境配置往往是“劝退”的第一步。很多初学者在尝试部署 LLM 服务或数据处理管道时,常常混淆“云容器”与“云主机”的概念,导致 Docker 安装失败或运行异常。

本文将手把手教你在 Ubuntu 云主机 上从零安装 Docker,并深入解析为什么不能在 Docker 里装 Docker,以及为什么必须选择云主机而非云容器作为部署底座。

🚫 核心概念澄清:三个“不能”与“必须”

在敲下第一行命令之前,我们必须先理清架构逻辑,这是避免后续无数报错的关键。

1. 为什么不能在 Docker 中再次安装 Docker?

很多新手会尝试在已经运行着的 Docker 容器内部再执行 apt install docker,这通常被称为 "Docker in Docker" (DinD)。

  • 原理限制:Docker 依赖宿主机的 Linux 内核特性(如 Namespace 和 Cgroups)。普通容器默认是隔离的,没有权限访问宿主机的内核接口。
  • 例外情况:虽然可以通过特权模式(--privileged)挂载宿主机 Socket 来实现 DinD,但这会破坏隔离性,带来巨大的安全风险,且配置极其复杂。
  • 结论生产环境和学习环境中,请务必直接在操作系统(宿主机)上安装 Docker,而不是在容器内部安装。

2. 为什么不能在“云容器”内部署?

现在的云厂商提供多种产品,名称容易混淆:

  • 云容器 (Cloud Containers) :如阿里云 ECI、腾讯云 SCF、AWS Fargate。这些是无服务器 (Serverless)托管式的运行时环境。你只能上传代码或镜像,没有 root 权限,无法修改系统底层,自然也无法安装 Docker 守护进程。
  • 云主机 (Cloud VMs) :如阿里云 ECS、腾讯云 CVM、AWS EC2。这是一台完整的、虚拟化的 Linux 服务器,你拥有 root 权限,可以随意安装软件、配置内核参数。
  • 结论:要安装和使用 Docker,你必须购买/登录的是 云主机 (ECS/CVM) ,而不是云容器实例。

3. 必须在云主机内部署

只有在全权的云主机环境下,Docker 才能正常守护进程化,管理其他的业务容器(如你的 AI 模型服务、数据库等)。


🛠️ 实战步骤:在 Ubuntu 云主机上安装 Docker

本教程基于 Ubuntu 20.04/22.04/24.04 LTS 版本,采用国内极速的 阿里云镜像源,解决官方源下载慢的问题。

第一步:安装必要支持包

首先,我们需要更新包索引并安装必要的工具,以便让 apt 能够通过 HTTPS 使用仓库。

# 更新 apt 包索引
sudo apt update

# 安装必要支持包
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

第二步:配置阿里云 Docker 源(关键加速步骤)

直接使用官方源在国内速度极慢,甚至超时。我们使用阿里云提供的 GPG Key 和源地址。

# 1. 下载并添加阿里云的 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 2. 设置稳定版仓库源
# 注意:$(lsb_release -cs) 会自动获取当前 Ubuntu 的版本代号(如 jammy, focal)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

第三步:更新源并安装 Docker

配置好源之后,再次更新索引,然后安装最新版本的 Docker Engine。

# 更新 apt 源,使其包含刚才添加的 Docker 源
sudo apt update

# 安装最新版本的 Docker 核心组件
# docker-ce: 社区版引擎
# docker-ce-cli: 命令行工具
# containerd.io: 容器运行时
# docker-compose-plugin: Docker Compose 插件(新版已集成,无需单独安装 docker-compose 二进制)
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

💡 提示:安装过程可能需要几分钟,请耐心等待直到命令结束。

第四步:验证安装

安装完成后,我们通过两个命令来确认 Docker 是否正常工作。

1. 查看 Docker 版本信息
如果输出了 Client 和 Server 的版本号,说明安装成功。

sudo docker version

2. 查看 Docker 运行状态
确保状态显示为 active (running)

sudo systemctl status docker

如果看到绿色的 ● docker.service - Docker Application Container EngineActive: active (running),恭喜你,环境搭建完成!


🚀 进阶建议:给 AI 程序员的额外 Tips

安装只是第一步,作为 AI 开发者,你还需要注意以下几点:

  1. 免 sudo 运行 Docker
    每次都要加 sudo 很麻烦,可以将当前用户加入 docker 组:

    sudo usermod -aG docker $USER
    # 注意:执行完后需要退出重新登录或重启终端生效
    
  2. 配置镜像加速器
    拉取 AI 模型镜像(如 PyTorch, TensorFlow, LLM 镜像)通常很大。建议在 /etc/docker/daemon.json 中配置阿里云或其他国内镜像加速器,否则拉取一个 5GB 的镜像可能需要几小时。

  3. 资源监控
    在云主机上跑大模型时,务必关注内存和 GPU 资源。可以使用 docker stats 实时查看容器资源占用。

📝 总结

  • 选对环境:必须是 云主机 (VM) ,拒绝云容器 (Serverless)。
  • 装对位置:直接在 操作系统层 安装,不要在容器内套娃。
  • 用对源:国内开发务必配置 阿里云/清华源,节省宝贵时间。

现在,你已经拥有了一个标准的容器化开发环境,接下来就可以开始部署你的第一个 LLM 应用了!