Docker 系列 | 07 - Docker 命令速查:日常操作指南
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 来管理多容器应用。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 满杯是幸福 空杯是自由!
评论