Docker 系列 | 07 - Docker 命令速查:日常操作指南

引言

到目前为止,我们已经学习了 Docker 的核心概念:镜像、容器、数据卷和网络,并通过一些示例命令进行了操作。为了方便您在日常工作中快速查找和使用 Docker 命令,本篇文章将对之前提到和未提及的一些常用命令进行系统性地汇总和速查。

熟练掌握这些命令行工具是高效使用 Docker 的关键。

Docker 命令概览

Docker 命令通常遵循 docker [管理对象] [动作] [选项] 的格式。例如:

  • docker image pull (管理对象是 image,动作是 pull)
  • docker container run (管理对象是 container,动作是 run)

为了简化,很多时候 container 可以省略,例如 docker run 等同于 docker container run

1. 镜像 (Image) 管理

镜像操作是 Docker 使用的基础。

命令描述示例
docker pull <image_name>:<tag>从镜像仓库拉取镜像docker pull ubuntu:22.04
docker images列出本地所有镜像docker images
docker rmi <image_id/name>删除一个或多个本地镜像docker rmi my-app:1.0
docker rmi -f <image_id/name>强制删除正在使用中的镜像docker rmi -f my-app:1.0
docker build -t <name>:<tag> .从 Dockerfile 构建镜像docker build -t my-web-app:v1.0 .
docker tag <source_image>:<tag> <target_image>:<tag>为镜像打标签(重命名或创建新标签)docker tag my-app:1.0 registry.example.com/my-app:prod
docker push <image_name>:<tag>将本地镜像推送到镜像仓库docker push my-app:1.0
docker image prune删除所有未使用的(悬空)镜像docker image prune
docker image prune -a删除所有未使用的镜像(包括没有被任何容器引用的)docker image prune -a

2. 容器 (Container) 管理

容器是 Docker 实际运行的实例。

命令描述示例
docker run [OPTIONS] <image> [COMMAND]创建并启动容器docker run -d -p 8080:80 --name my-web nginx:latest
docker ps列出所有正在运行的容器docker ps
docker ps -a列出所有容器(包括已停止的)docker ps -a
docker start <container_id/name>启动一个或多个已停止的容器docker start my-web
docker stop <container_id/name>优雅地停止一个或多个运行中的容器docker stop my-web
docker restart <container_id/name>重启一个或多个容器docker restart my-web
docker rm <container_id/name>删除一个或多个已停止的容器docker rm my-web
docker rm -f <container_id/name>强制删除一个或多个正在运行中的容器docker rm -f my-web
docker logs <container_id/name>查看容器的日志输出docker logs my-web
docker logs -f <container_id/name>实时跟踪容器日志docker logs -f my-web
docker exec -it <container_id/name> <command>在运行中的容器内执行命令,并进入交互式终端docker exec -it my-web bash
docker inspect <container_id/name>查看容器的详细信息(JSON 格式)docker inspect my-web
docker cp <src_path> <container>:<dest_path>将文件从宿主机复制到容器docker cp ./nginx.conf my-web:/etc/nginx/nginx.conf
docker cp <container>:<src_path> <dest_path>将文件从容器复制到宿主机docker cp my-web:/var/log/nginx/access.log .
docker top <container_id/name>查看容器中运行的进程列表docker top my-web
docker stats实时查看所有运行中容器的资源使用情况docker stats
docker update [OPTIONS] <container_id/name>更新容器的配置(如资源限制)docker update --memory 512m my-web
docker container prune删除所有已停止的容器docker container prune

3. 数据卷 (Volume) 管理

数据卷用于持久化容器数据。

命令描述示例
docker volume create <name>创建一个命名卷docker volume create my-data
docker volume ls列出所有数据卷docker volume ls
docker volume inspect <name>查看数据卷的详细信息docker volume inspect my-data
docker volume rm <name>删除一个或多个数据卷docker volume rm my-data
docker volume prune删除所有未使用的(未被任何容器引用的)数据卷docker volume prune

4. 网络 (Network) 管理

网络用于管理容器之间的通信。

命令描述示例
docker network create <name>创建一个自定义网络docker network create my-app-net
docker network ls列出所有 Docker 网络docker network ls
docker network inspect <name>查看网络的详细信息docker network inspect my-app-net
docker network rm <name>删除一个或多个网络docker network rm my-app-net
docker network connect <network> <container>将一个运行中的容器连接到指定网络docker network connect my-app-net my-web
docker network disconnect <network> <container>将一个容器从指定网络断开docker network disconnect my-app-net my-web
docker network prune删除所有未使用的(未连接任何容器的)网络docker network prune

5. 系统 (System) 维护

这些命令用于管理 Docker 守护进程和清理系统资源。

命令描述示例
docker version显示 Docker 版本信息docker version
docker info显示 Docker 系统信息docker info
docker system df显示 Docker 磁盘使用情况docker system df
docker system prune清理所有未使用的 Docker 资源 (包括停止的容器、未使用的网络、悬空镜像、构建缓存)docker system prune
docker system prune -a清理所有未使用的 Docker 资源,包括未被引用的镜像docker system prune -a

结语

本篇文章为您总结了 Docker 日常使用中最常见和最重要的命令。这些命令涵盖了镜像、容器、数据卷、网络以及系统维护等多个方面。

熟练掌握这些命令,将极大地提升您使用 Docker 的效率。在遇到问题时,不要忘记使用 docker help <command> 来获取更详细的帮助信息。

在下一篇文章中,我们将进入 Docker 的实战环节,学习如何使用 Docker Compose 来管理多容器应用。