想象一下,你要搬家,把家具从旧房子搬到新房子。如果每次搬家都要重新组装家具,是不是很麻烦?Docker 就像是一个"标准化的搬家箱",把软件和它需要的所有东西(配置、依赖等)都打包在一起,这样无论在哪台电脑上,都能一键运行,不用担心"在我电脑上能跑,在你电脑上跑不了"的问题。
很多AI工具的安装都离不开docker,所以这里先介绍下 docker的安装和基本使用。这样后续可以少走很多弯路,少入很多坑。
步骤很简单:

对于 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 可以让 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 容器。
# 停止服务(关闭所有容器)
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 查看容器名称或 IDdocker 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 数据从旧电脑搬到新电脑。
步骤:
# 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"场景: 整个 AI 工具项目换到新电脑。
步骤:
docker-compose.yml 文件volumes: 配置部分,看看挂载了哪些目录docker compose up -d 即可示例:
# docker-compose.yml 中的 volumes 配置
volumes:
- ./data:/app/data # 需要复制 ./data 目录
- ./config:/app/config # 需要复制 ./config 目录现象: Docker 无法启动,提示 WSL 错误。
原因: 电脑的虚拟化功能没有开启。
解决步骤:
第一步:检查虚拟化是否开启
Ctrl + Shift + Esc 打开任务管理器
第二步:如果显示"已禁用",需要在 BIOS 中开启
Delete 键(有些电脑是 F2 或 F10)进入 BIOSF7 进入高级模式F10 保存并退出
注意: 不同品牌电脑的 BIOS 界面可能不同,但大致步骤相同。
现象: 运行 docker pull 时报错:Error response from daemon: Get "https://registry-1.docker.io/v2/"
原因: 无法连接到 Docker 官方镜像仓库(网络问题)。
解决方法:配置镜像加速
步骤:

完整配置示例:
{
"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"
]
}小提示: 配置后下载速度会明显变快!
学完这篇教程,你已经掌握了 Docker 的基本使用!记住这几个关键点:
遇到问题不要慌,参考"常见问题"部分,大部分问题都能解决。祝你顺利运行各种 AI 工具!🎉