Docker常用命令速查手册
引言
Docker作为领先的容器化平台,通过轻量级的容器技术彻底改变了软件开发、部署和运维的方式。它将应用及其依赖打包到标准化的单元中,确保了环境的一致性和可移植性。掌握Docker的命令行工具是与Docker交互的核心。本文整理了从镜像管理到容器操作等一系列最常用的Docker命令,是您日常工作的实用速查手册。
镜像管理
镜像是创建容器的基础模板。以下是管理镜像的核心命令。
1. docker search - 搜索镜像
在Docker Hub上查找官方或社区提供的镜像。
docker search nginx # 搜索名为nginx的镜像
docker search --filter is-official=true ubuntu # 只搜索官方镜像2. docker pull - 拉取镜像
从镜像仓库(默认为Docker Hub)下载镜像到本地。
docker pull ubuntu:20.04 # 拉取Ubuntu 20.04版本的镜像
docker pull nginx # 拉取最新版本的nginx镜像3. docker images - 列出本地镜像
查看本地已下载的所有镜像。
docker images # 列出所有镜像
docker images -q # 只列出所有镜像的ID4. docker rmi - 删除本地镜像
删除一个或多个本地镜像。
docker rmi nginx:latest # 删除指定版本的nginx镜像
docker rmi $(docker images -q) # 删除所有本地镜像(谨慎操作!)5. docker build - 构建镜像
根据Dockerfile创建一个新的自定义镜像。
docker build -t my-app:1.0 . # 在当前目录下根据Dockerfile构建名为my-app:1.0的镜像容器生命周期管理
容器是镜像的运行实例。以下命令用于创建、运行、停止和删除容器。
6. docker run - 创建并启动容器
这是最核心的命令之一,用于从镜像创建并启动一个新容器。
docker run -d --name my-nginx -p 8080:80 nginx
# -d: 后台运行
# --name: 指定容器名称
# -p: 将主机的8080端口映射到容器的80端口
docker run -it --rm ubuntu /bin/bash
# -it: 交互式模式并分配一个伪终端
# --rm: 容器退出时自动删除7. docker ps - 列出容器
查看正在运行的容器。
docker ps # 列出正在运行的容器
docker ps -a # 列出所有容器(包括已停止的)
docker ps -q # 只列出正在运行容器的ID8. docker stop - 停止容器
优雅地停止一个或多个正在运行的容器。
docker stop my-nginx # 停止名为my-nginx的容器
docker stop $(docker ps -q) # 停止所有正在运行的容器9. docker start - 启动已停止的容器
启动一个或多个已经被停止的容器。
docker start my-nginx # 启动名为my-nginx的容器10. docker restart - 重启容器
重启一个或多个容器。
docker restart my-nginx # 重启名为my-nginx的容器11. docker rm - 删除容器
删除一个或多个已停止的容器。
docker rm my-nginx # 删除名为my-nginx的容器(必须已停止)
docker rm -f my-nginx # 强制删除正在运行的容器
docker rm $(docker ps -a -q) # 删除所有已停止的容器容器交互与调试
当容器运行后,我们需要与之交互或查看其内部状态。
12. docker logs - 查看容器日志
获取容器的标准输出日志,是调试应用的关键。
docker logs my-nginx # 查看my-nginx容器的所有日志
docker logs -f my-nginx # 实时追踪日志(类似tail -f)
docker logs --tail 100 my-nginx # 查看最后100行日志13. docker exec - 在运行中的容器内执行命令
用于进入正在运行的容器内部执行命令,非常适合调试。
docker exec -it my-nginx /bin/bash
# -it: 交互式模式进入容器的bash shell
docker exec my-nginx ls /usr/share/nginx/html
# 在容器内执行ls命令,不进入交互模式14. docker inspect - 查看容器详细信息
以JSON格式返回容器的底层配置和状态信息。
docker inspect my-nginx # 查看my-nginx容器的详细元数据
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-nginx
# 使用Go模板格式化输出,只获取容器的IP地址资源与系统管理
这些命令帮助您管理Docker系统本身的资源。
15. docker system df - 查看磁盘使用情况
显示Docker占用的磁盘空间,包括镜像、容器、构建缓存等。
docker system df # 查看Docker磁盘使用概览16. docker system prune - 清理未使用的资源
一键清理系统中的悬空镜像、已停止的容器、未使用的网络和构建缓存,是释放磁盘空间的利器。
docker system prune # 清理未使用的资源
docker system prune -a # 清理所有未使用的资源(包括未被任何容器关联的镜像)总结
Docker的命令行工具功能强大且设计直观。本文覆盖了从镜像拉取、容器运行到日志查看和系统清理的完整工作流。将这些命令融入您的日常开发流程,将极大地提升您的工作效率和应用交付的可靠性。
小贴士:使用docker --help可以查看全局帮助,docker <COMMAND> --help可以查看任何子命令的详细用法。
Happy Containerizing! 🐳
CC BY-NC 4.0 2025 © BLT.CC