第 7 课:通过宝塔安装 Docker
第三阶段 · 阿里云 ECS 与宝塔面板 · 面向 macOS 和 Windows 的 Docker 初学者
本课完成标准
你能够:
- 解释 Docker Engine、Docker CLI、Docker Compose 和宝塔的关系;
- 在宝塔软件商店安装 Docker;
- 检查 Docker 服务是否运行;
- 检查 Compose 是否可用;
- 成功运行 hello-world 测试容器。
1. 先理解安装了什么
| 名称 | 小白解释 | 作用 |
|---|---|---|
| Docker Engine | 服务器上真正运行容器的后台程序 | 创建镜像、启动和停止容器 |
| Docker CLI | 你输入的 docker 命令 | 向 Engine 发出指令 |
| Docker Compose | 管理多个服务的命令工具 | 读取 compose.yaml |
| 宝塔 | 浏览器里的服务器管理界面 | 帮助安装和查看软件状态 |
流程可以记成:
宝塔软件商店(安装入口)
↓
Docker Engine(真正运行容器)
**关键认识:**宝塔只是安装和管理入口;以后运行 FastAPI 的仍然是服务器上的 Docker Engine,不是宝塔本身。
2. 在宝塔软件商店安装
- 使用浏览器登录宝塔面板;
- 打开“软件商店”或类似的软件管理入口;
- 搜索 Docker;
- 选择稳定版本,点击安装;
- 等待安装任务完成,确认页面显示“运行中”或“已安装”。
宝塔界面名称和按钮可能随版本变化。如果软件商店中同时出现 Docker、Docker Compose 或相关插件,先安装 Docker 主程序,再确认 Compose 可用。
**不要重复安装多个 Docker 发行版。**如果服务器已经有手动安装的 Docker,请先确认现状,再决定是否继续,避免多个服务互相冲突。
3. 检查 Docker 服务状态
打开宝塔终端,或从本地电脑 SSH 登录 ECS:
docker version
docker info
docker version 用来查看客户端和服务器端版本;docker info 用来确认后台 Engine 是否可连接。服务器正常时,应该能看到 Server 信息,而不是只显示 Client。
如果当前用户权限不足,可能需要在命令前加 sudo:
sudo docker version
sudo docker info
不要直接使用 chmod 777 解决权限问题。后续可以按 Linux 权限规则把用户加入 Docker 用户组,但生产服务器应明确知道这会赋予用户较高权限。
4. 检查 Compose
docker compose version
现代 Docker 通常使用带空格的 docker compose。如果系统提示找不到命令,可能是 Compose 插件未安装或 Docker 服务没有正确完成安装。
| 命令 | 含义 | 结果 |
|---|---|---|
| docker version | 查看 Client/Server 版本 | 能连接 Engine |
| docker info | 查看 Engine 运行信息 | 显示服务器配置 |
| docker compose version | 查看 Compose 插件 | 输出 Compose 版本 |
5. 运行第一个测试容器
docker run --rm hello-world
第一次运行时,Docker 会从镜像仓库拉取 hello-world 镜像。成功时会打印一段说明文字,并自动删除这个临时容器。
这里的 --rm 表示容器退出后自动清理;它不会删除镜像。可以检查本地镜像:
docker image ls
测试通过说明:Docker CLI 能连接 Engine、Engine 能创建容器、服务器能拉取镜像并运行容器。
6. 开机启动和宝塔服务状态
在宝塔软件页面开启 Docker 的开机启动(如果页面提供该选项)。这样 ECS 重启后,Docker Engine 会自动启动。
在 Linux 终端也可以查看服务状态:
sudo systemctl status docker
看到 active (running) 说明后台服务正在运行。这个命令只查看状态,不要在不了解影响的情况下执行全局停止命令。
7. 常见错误排查
| 现象 | 优先检查 | 处理思路 |
|---|---|---|
| Cannot connect to the Docker daemon | 宝塔软件状态、docker info | 启动 Docker 服务,再重试 |
| permission denied | 当前用户、是否需要 sudo | 先临时使用 sudo,不要 chmod 777 |
| docker compose not found | Compose 插件是否安装 | 在宝塔确认插件或软件状态 |
| Unable to find image | 服务器网络和 DNS | 查看完整错误,不要反复重试 |
| 宝塔按钮显示安装中很久 | 安装任务日志、磁盘和网络 | 等待或收集日志后再处理,不要并行重复安装 |
不要把 Docker API 端口(例如 2375)暴露到公网,也不要把 Docker socket 挂到不信任的容器中。
8. 一分钟自测
问题 1:哪个命令最适合验证 Docker 能否创建并运行容器?
- A. docker run --rm hello-world
- B. docker delete everything
- C. docker port 3306
问题 2:docker compose version 的作用是什么?
- A. 检查 Compose 工具是否可用
- B. 创建 MySQL 用户
- C. 修改宝塔密码
答案:1A,2A。
本课通关证据
docker version
docker compose version
docker run --rm hello-world
docker image ls
完成标准:Docker Engine、Compose 和 hello-world 均成功;Docker 服务设置为开机启动;没有开放 Docker API 公网端口。
如果遇到错误,请贴系统版本、宝塔软件状态、完整命令和完整输出,并隐藏密码、Token 和私钥。
想系统学习这门课程?
你已阅读完本文。需要更完整的知识体系,可以继续了解「Vibe Coding 实战课程」。
查看课程详情