【AI工具箱】Docker:便捷的运行你的AI工具

什么是 Docker?

想象一下,你要搬家,把家具从旧房子搬到新房子。如果每次搬家都要重新组装家具,是不是很麻烦?Docker 就像是一个"标准化的搬家箱",把软件和它需要的所有东西(配置、依赖等)都打包在一起,这样无论在哪台电脑上,都能一键运行,不用担心"在我电脑上能跑,在你电脑上跑不了"的问题。

很多AI工具的安装都离不开docker,所以这里先介绍下 docker的安装和基本使用。这样后续可以少走很多弯路,少入很多坑。

下载安装

Windows、Mac

步骤很简单:

  1. 前往官网 https://www.docker.com/
  2. 点击 Download 下载按钮
  3. 根据你的系统选择对应版本(Windows 或 Mac)
  4. 下载完成后,双击安装包,按照提示一路点击"下一步"即可

Linux

对于 Linux 服务器:
如果你不习惯用命令行操作,想要图形界面(就像 Windows 那样用鼠标点点点),推荐使用宝塔面板(https://www.bt.cn/new/download.html),它提供了可视化的 Docker 管理界面,非常适合新手。

常用配置

镜像加速(重要!)

为什么需要镜像加速?
就像从国外网站下载文件很慢一样,Docker 默认从国外服务器下载软件镜像,速度会很慢。配置镜像加速就是使用国内的"中转站",下载速度会快很多。

配置方法:
在 Docker 的配置文件中添加以下内容:

{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.m.daocloud.io",
    "http://mirrors.ustc.edu.cn",
    "http://mirror.azure.cn"
  ]
}
存储目录

作用: 指定 Docker 存放文件的位置。就像你可以选择把文件存在 C 盘还是 D 盘一样。

{
  "data-root": "/data/docker"
}

提示: 如果你的 C 盘空间不够,可以通过这个配置把 Docker 数据存到其他盘。

DNS 配置

作用: DNS 就像是互联网的"电话簿",帮助电脑找到网站的地址。配置 DNS 可以让 Docker 容器更快地访问网络。

"dns": [
  "223.5.5.5",      // 阿里云 DNS
  "114.114.114.114", // 国内常用 DNS
  "8.8.8.8",        // Google DNS
  "8.8.4.4"         // Google DNS 备用
]

常用命令

命令就像和 Docker 对话的语言,下面教你最常用的几个命令,复制粘贴就能用!

Docker Compose 命令(管理多个容器)

Docker Compose 就像是一个"指挥官",可以同时管理多个 Docker 容器。

# 停止服务(关闭所有容器)
docker compose down

# 启动服务(后台运行,-d 表示 detach 后台运行)
docker compose up -d

# 检查服务状态(查看容器是否正常运行)
docker compose ps

# 拉取最新镜像(更新软件)
docker compose pull

# 查看所有容器日志(排查问题时很有用)
docker compose logs

# 查看特定服务日志(比如查看名为 api 的服务)
docker compose logs api

# 实时查看日志(类似实时监控,按 Ctrl+C 退出)
docker compose logs -f api
镜像命令(管理软件安装包)

镜像就像是软件的"安装包",容器是根据镜像创建出来的"运行实例"。

# 查看本地已经存在的镜像(看看你下载了哪些软件包)
docker images

# 拉取最新版本的镜像(下载或更新软件包)
# 示例:docker pull nginx:latest
docker pull <镜像名>:<标签>

# 删除指定镜像(删除不用的软件包,释放空间)
# 示例:docker rmi abc123def456
docker rmi <镜像ID>

小提示: 可以用 docker images 命令查看镜像 ID,然后复制 ID 来删除。

容器命令(管理运行中的程序)

容器就是根据镜像运行起来的"实例",就像根据游戏安装包启动的游戏程序。

# 查看正在运行的容器(看看哪些程序在运行)
docker ps

# 停止容器(关闭程序)
# 示例:docker stop my-app
docker stop <容器名或容器ID>

# 启动容器(开启程序)
docker start <容器名或容器ID>

# 重启容器(重启程序,常用于解决卡顿问题)
docker restart <容器名或容器ID>

# 删除容器(删除程序实例,注意:需要先停止容器才能删除)
docker rm <容器名或容器ID>

# 启动新容器(从镜像创建并运行一个新程序)
# 示例:docker run -d -p 80:80 nginx:latest
docker run [选项] <镜像名>:<标签>

小技巧:

  • docker ps 查看容器名称或 ID
  • 要查看所有容器(包括已停止的),使用 docker ps -a

数据持久化(重要!保护你的数据)

为什么需要持久化?
默认情况下,容器删除后,里面的数据也会消失(就像游戏卸载后存档也没了)。数据持久化就是把重要数据保存在容器外面,即使容器删除了,数据还在。

两种常用方法:

方法一:直接挂载目录(推荐新手使用)

把电脑上的文件夹和容器内的文件夹"连接"起来:

# 示例:把本地 /data/mysql 文件夹挂载到容器的 /var/lib/mysql
docker run -v /宿主机路径:/容器内路径 镜像名
方法二:使用数据卷(更专业的方式)
# 1. 创建一个数据卷
docker volume create my-data

# 2. 创建容器时使用这个数据卷
docker run -d -v my-data:/path/to/data 镜像名

# 3. 查看所有数据卷
docker volume ls

# 4. 查看数据卷详细信息(可以看到数据存在哪里)
docker volume inspect my-data

# 5. 删除数据卷(注意:会删除数据!)
docker volume rm my-data

小贴士: 数据库、配置文件等重要数据一定要做持久化!

备份与迁移(换电脑时很有用)

方法一:迁移 Docker 数据卷

场景: 把 Docker 数据从旧电脑搬到新电脑。

步骤:

# 1. 在旧电脑上,将数据卷导出为 tar 压缩包
docker run --rm -v <数据卷名>:/data -v <本地保存路径>:/backup alpine tar cvf /backup/backup.tar /data

# 2. 将 tar 文件复制到新电脑(可以用U盘、网络传输等方式)
# 如果是 Linux 服务器之间传输,可以用这个命令:
scp /path/to/backup.tar 用户名@新服务器IP:/path/to/backup.tar

# 3. 在新电脑上导入数据卷
docker run --rm -v <数据卷名>:/backup alpine sh -c "tar xvf /backup/backup.tar -C /backup"
方法二:迁移 Docker Compose 项目

场景: 整个 AI 工具项目换到新电脑。

步骤:

  1. 打开项目的 docker-compose.yml 文件
  2. 找到 volumes: 配置部分,看看挂载了哪些目录
  3. 把这些目录整个复制到新电脑的相同位置
  4. 在新电脑上运行 docker compose up -d 即可

示例:

# docker-compose.yml 中的 volumes 配置
volumes:
  - ./data:/app/data          # 需要复制 ./data 目录
  - ./config:/app/config      # 需要复制 ./config 目录

常见问题解决

问题 1:Docker Desktop – Unexpected WSL error(Windows 系统)

现象: Docker 无法启动,提示 WSL 错误。

原因: 电脑的虚拟化功能没有开启。

解决步骤:

第一步:检查虚拟化是否开启

  1. Ctrl + Shift + Esc 打开任务管理器
  2. 点击"性能"标签页
  3. 查看 CPU 部分,看"虚拟化"是否显示"已启用"

第二步:如果显示"已禁用",需要在 BIOS 中开启

  1. 重启电脑
  2. 开机时按 Delete 键(有些电脑是 F2F10)进入 BIOS
  3. 选择 Advanced Model 或按 F7 进入高级模式
  4. 找到 CPU Configuration(CPU 配置)
  5. 找到 Virtualization(虚拟化)或 Intel VT-x / AMD-V 选项
  6. 改成 Enabled(启用)
  7. F10 保存并退出

注意: 不同品牌电脑的 BIOS 界面可能不同,但大致步骤相同。

问题 2:无法下载镜像,提示网络错误

现象: 运行 docker pull 时报错:Error response from daemon: Get "https://registry-1.docker.io/v2/"

原因: 无法连接到 Docker 官方镜像仓库(网络问题)。

解决方法:配置镜像加速

步骤:

  1. 打开 Docker Desktop
  2. 点击右上角齿轮图标(设置)
  3. 选择 “Docker Engine”
  4. 在配置文件中添加以下内容

完整配置示例:

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "dns": [
    "223.5.5.5",
    "114.114.114.114",
    "8.8.8.8",
    "8.8.4.4"
  ],
  "experimental": false,
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.m.daocloud.io",
    "http://mirrors.ustc.edu.cn",
    "http://mirror.azure.cn"
  ]
}
  1. 点击 “Apply & Restart”(应用并重启)
  2. 等待 Docker 重启完成

小提示: 配置后下载速度会明显变快!


总结

学完这篇教程,你已经掌握了 Docker 的基本使用!记住这几个关键点:

  1. 镜像 = 软件安装包
  2. 容器 = 运行中的程序
  3. 持久化 = 保护重要数据
  4. 配置镜像加速 = 下载更快

遇到问题不要慌,参考"常见问题"部分,大部分问题都能解决。祝你顺利运行各种 AI 工具!🎉

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐