我的博客
HomePostsGitHub

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 # 只列出所有镜像的ID

4. 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 # 只列出正在运行容器的ID

8. 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