在Linux服务器环境下进行日常开发和运维时,熟练使用Docker命令至关重要。本文梳理了一份覆盖镜像管理、容器操作、日志查看、网络端口映射及资源清理等核心场景的常用命令清单,是你在云原生实践中的重要参考。
镜像(Image)管理命令
操作Docker时,镜像是所有容器的基础。以下是管理本地镜像的常用命令:
| 命令 |
说明 |
docker images |
列出本地所有镜像 |
docker pull <镜像名> |
从仓库拉取镜像,例如 docker pull nginx |
docker build -t <镜像名> . |
基于当前目录的 Dockerfile 构建一个新镜像(. 代表构建上下文路径) |
docker rmi <镜像名或ID> |
删除指定的本地镜像 |
docker rmi $(docker images -q) |
(慎用) 删除所有本地镜像 |
容器(Container)生命周期管理
容器是镜像的运行实例,其管理涵盖从启动到清理的完整流程。
启动容器
后台运行容器是服务部署的推荐方式,使用 -d 参数并映射端口。
# 基本格式:后台启动并命名容器,映射端口
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) |
调试示例:
假设容器内运行的是一个Python应用,可以进入容器检查文件或测试模块导入。
docker exec -it backend sh
ls /app # 查看应用目录文件
python -c “import app.config” # 测试Python模块能否正常导入
端口映射与网络
端口映射是将容器服务暴露给外部访问的核心配置。
-p 8000:8000:将宿主机的8000端口映射到容器内的8000端口。
docker port <容器名>:查看指定容器的端口映射情况。
- 在服务器本地,可以通过
curl http://localhost:8000 测试服务是否正常响应。
重要提示:若需从外网访问服务,请务必在云服务器提供商(如阿里云、腾讯云)的安全组或防火墙规则中放行对应的主机端口。
磁盘空间清理
定期清理无用的Docker资源可以有效释放服务器磁盘空间。
| 命令 |
说明 |
docker system prune |
删除所有已停止的容器、未被使用的网络和构建缓存 |
docker system prune -a |
更彻底地清理,额外删除所有未被容器使用的镜像 |
docker volume prune |
清理未被任何容器引用的数据卷 |
docker image prune |
清理所有悬空(dangling)镜像 |
建议:可定期执行 docker system prune 命令来释放空间。
FastAPI应用完整部署流程示例
以下是一个从构建到部署FastAPI服务的连贯操作示例,涵盖了上述多个命令。
# 1. 进入项目目录
cd /home/ubuntu/app/backend
# 2. 根据Dockerfile构建镜像
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. 在服务器本地测试API接口是否可达
curl http://localhost:8000

图:Docker部署FastAPI的核心流程示意
常见权限问题处理
在操作时若遇到 Got permission denied while trying to connect to the Docker daemon 这类权限错误,是因为当前用户不在 docker 用户组中。解决方法如下:
# 将当前用户(例如ubuntu)加入docker组
sudo usermod -aG docker $USER
# 执行后,需要退出并重新登录SSH会话,组权限更改才会生效
|