【硬核教程】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 Engine 和 Active: active (running),恭喜你,环境搭建完成!
🚀 进阶建议:给 AI 程序员的额外 Tips
安装只是第一步,作为 AI 开发者,你还需要注意以下几点:
-
免 sudo 运行 Docker:
每次都要加sudo很麻烦,可以将当前用户加入 docker 组:sudo usermod -aG docker $USER # 注意:执行完后需要退出重新登录或重启终端生效 -
配置镜像加速器:
拉取 AI 模型镜像(如 PyTorch, TensorFlow, LLM 镜像)通常很大。建议在/etc/docker/daemon.json中配置阿里云或其他国内镜像加速器,否则拉取一个 5GB 的镜像可能需要几小时。 -
资源监控:
在云主机上跑大模型时,务必关注内存和 GPU 资源。可以使用docker stats实时查看容器资源占用。
📝 总结
- 选对环境:必须是 云主机 (VM) ,拒绝云容器 (Serverless)。
- 装对位置:直接在 操作系统层 安装,不要在容器内套娃。
- 用对源:国内开发务必配置 阿里云/清华源,节省宝贵时间。
现在,你已经拥有了一个标准的容器化开发环境,接下来就可以开始部署你的第一个 LLM 应用了!