🧨 一、关闭和清理 Docker 服务相关命令
🔻 docker-compose down
作用:关闭并删除所有使用当前 docker-compose.yml
启动的容器、网络、挂载卷(匿名的)、和依赖关系。
通俗解释:就像你关掉了一个 App,而且清理了它的运行环境(但不会删掉镜像和数据卷)。
举例:
假设你有个 Web 服务和数据库,它们通过 docker-compose up
启动:
web -> 容器A
db -> 容器B
运行 docker-compose down
之后,A 和 B 都被关闭并移除。
🔥 docker system prune -af
作用:强制清理所有未使用的:
- 容器(已停止)
- 网络(未使用)
- 镜像(没有被任何容器使用)
- 构建缓存
-a
:包括未被任何容器使用的镜像
-f
:不询问确认,直接执行
通俗解释:相当于清理硬盘中的“安装包垃圾”,比如你删除了应用但安装包还在,这命令把它们全清了。
注意!新手提醒:
- 很暴力,不要在生产环境轻易用,会把你没用但还想留的镜像一并删了。
💣 docker volume prune -f
作用:清理所有未被使用的 Docker 卷(volumes)
通俗解释:Docker 卷就是容器的数据硬盘。如果这些硬盘没有在用,就全部删除。
🛠️ 二、重新构建和启动服务
🧱 docker-compose build --no-cache
作用:从头重新构建镜像,不使用任何缓存
通俗解释:就像你从零重新编译一个程序,确保没有缓存影响构建结果。
新手误区提醒:
- 如果你改了 Dockerfile 或依赖库(如
requirements.txt
),建议用这个强制更新。
🚀 docker-compose up -d
作用:以“后台”方式启动服务(不会占用当前终端)
-d
:--detach
,让容器在后台运行
通俗解释:就像你点击“启动程序”但不让它开窗口,而是在后台运行。
🧾 三、日志查看命令
📄 docker-compose logs -f qdrant
📄 docker-compose logs -f backend
作用:查看指定服务的实时日志输出
-f
:跟踪(follow)日志,会实时显示日志更新qdrant
/backend
:服务名称
举例:
想看向量数据库 qdrant 的启动过程是否出错:
docker-compose logs -f qdrant
🔁 四、拉取、重构和重启组合命令
🔄 docker-compose down
🔄 docker-compose up -d --build
作用:
- 先关闭服务
- 然后构建镜像并启动
区别说明:
相比 up -d
,这个命令会重新 build 镜像,相当于加了 --build
的意思。
📥 sudo docker-compose pull
作用:从远程仓库拉取 docker-compose.yml
中定义的镜像
通俗解释:就像你从 Docker Hub 下载最新版程序安装包
🔧 sudo docker-compose build backend frontend
作用:只构建 backend
和 frontend
两个服务的镜像
用法举例:
docker-compose.yml 有三个服务:backend、frontend、redis
你只改了 backend 和 frontend 的代码,就构建这两个即可
🔃 sudo systemctl daemon-reexec
作用:重新执行 systemd 守护进程(不重启系统)
使用场景:
- 安装 Docker 后有问题(比如 systemd 没识别新服务)
- Docker 无法启动或服务状态异常
🔄 sudo systemctl restart docker
作用:重启 Docker 服务本身,相当于“重启 Docker 引擎”
📦 镜像拉取相关
🧲 sudo docker pull qdrant/qdrant:latest
作用:手动从 Docker Hub 拉取最新版本的 qdrant 镜像
📊 系统状态监控
💾 df -h
作用:查看磁盘使用情况(以人类可读方式显示,如 GB)
新手要看什么?
- 看
/var/lib/docker
相关挂载是否快满了
🧰 sudo systemctl status docker
作用:查看 Docker 服务当前状态,是否在运行,有没有报错
📋 容器状态检查
🧪 sudo docker-compose ps
作用:列出由 docker-compose 管理的所有容器运行状态
输出示例:
Name Command State Ports
--------------------------------------------------------------------------------
myapp_backend_1 python app.py Up 0.0.0.0:5000->5000/tcp
myapp_qdrant_1 /qdrant Up 0.0.0.0:6333->6333/tcp
🌍 网络信息
🌐 curl ifconfig.me
作用:获取当前主机的公网 IP 地址
🔁 综合部署流程命令组合(重点)
🎯 常见部署顺序
# 1. 清理旧的容器和镜像
docker-compose down
docker system prune -af
docker volume prune -f
# 2. 拉最新镜像
sudo docker-compose pull
# 3. 构建镜像(可选:只构建有改动的服务)
sudo docker-compose build backend frontend
# 4. 启动服务
sudo docker-compose up -d
# 5. 查看服务状态和日志
sudo docker-compose ps
sudo docker-compose logs -f backend
✅ 新手常见混淆点总结
命令 | 含义 | 容器会删吗? | 镜像会删吗? | 缓存会删吗? |
---|---|---|---|---|
docker-compose down | 停掉所有服务并删除容器、网络 | ✅ | ❌ | ❌ |
docker system prune -af | 删除所有未使用的东西 | ✅(未运行的) | ✅(未引用的) | ✅ |
docker-compose build | 构建镜像 | ❌ | ✅(重建) | ❌ |
docker-compose build --no-cache | 从零构建,不用缓存 | ❌ | ✅ | ✅ |
docker-compose up -d | 启动服务(不构建) | ❌ | ❌ | ❌ |
docker-compose up -d --build | 启动并重建镜像 | ❌ | ✅ | ❌ |