在 Ubuntu 服务器上使用 Docker 的常用命令清单 ,涵盖 镜像管理、容器操作、日志查看、网络与端口、清理资源 等核心场景,适合日常开发和运维。
🐳 一、镜像(Image)相关
| 命令 | 说明 |
|---|---|
docker images |
列出本地所有镜像 |
docker build -t 镜像名 . |
从当前目录的 Dockerfile 构建镜像(. 是构建上下文) |
docker rmi 镜像名或ID |
删除指定镜像 |
docker rmi $(docker images -q) |
删除所有镜像(慎用) |
docker pull 镜像名 |
从仓库拉取镜像(如 docker pull nginx) |
📦 二、容器(Container)管理
启动容器
bash
编辑
# 后台运行(推荐部署用)
docker run -d --name 容器名 -p 主机端口:容器端口 镜像名
# 示例:启动 FastAPI
docker run -d --name backend -p 8000:8000 fastapi-backend
查看容器
| 命令 | 说明 |
|---|---|
docker ps |
查看正在运行的容器 |
docker ps -a |
查看所有容器(包括已停止的) |
docker inspect 容器名 |
查看容器详细信息(IP、挂载、环境变量等) |
停止/删除容器
| 命令 | 说明 |
|---|---|
docker stop 容器名 |
优雅停止容器 |
docker kill 容器名 |
强制终止容器 |
docker rm 容器名 |
删除已停止的容器 |
docker rm -f 容器名 |
强制停止并删除容器(最常用) |
docker rm -f $(docker ps -aq) |
删除所有容器(慎用) |
📝 三、日志与调试
| 命令 | 说明 |
|---|---|
docker logs 容器名 |
查看容器完整日志 |
docker logs -f 容器名 |
实时跟踪日志 (类似 tail -f) |
docker logs --tail 50 容器名 |
查看最近 50 行日志 |
docker logs -t 容器名 |
显示带时间戳的日志 |
docker exec -it 容器名 sh |
进入容器内部(调试用) (如果容器有 bash,可用 bash 替代 sh) |
💡 调试示例:
bash
编辑
docker exec -it backend sh ls /app # 查看文件是否复制成功 python -c "import app.config" # 测试模块导入
🌐 四、端口与网络
| 命令 | 说明 |
|---|---|
-p 8000:8000 |
将主机 8000 端口映射到容器 8000 端口 |
docker port 容器名 |
查看容器端口映射情况 |
curl http://localhost:8000 |
在服务器本地测试服务是否通 |
⚠️ 注意:外网访问需在云平台(如腾讯云、阿里云)安全组/防火墙中放行对应端口!
🧹 五、清理与释放空间
| 命令 | 说明 |
|---|---|
docker system prune |
删除所有停止的容器、无用网络、构建缓存 |
docker system prune -a |
删除所有未使用的镜像 + 上述内容(更彻底) |
docker volume prune |
清理无用数据卷 |
docker image prune |
清理悬空(dangling)镜像 |
✅ 建议定期执行
docker system prune释放磁盘空间。
🚀 六、部署 FastAPI 常用完整流程
bash
编辑
# 1. 进入项目目录
cd /home/ubuntu/app/backend
# 2. 构建镜像
docker build -t fastapi-backend .
# 3. 停止旧容器(如果存在)
docker rm -f backend
# 4. 启动新容器
docker run -d --name backend -p 8000:8000 fastapi-backend
# 5. 查看日志
docker logs -f backend
# 6. 本地测试
curl http://localhost:8000
🔒 七、权限问题(常见)
如果遇到权限错误(如 Got permission denied while trying to connect to the Docker daemon),可将用户加入 docker 组:
bash
编辑
sudo usermod -aG docker ubuntu
# 然后重新登录 SSH