Docker 基础命令的 6 大核心模块
Docker 基础命令的 6 大核心模块
Docker 基础命令围绕 “镜像→容器→数据→网络→仓库→系统” 的核心流程设计,按功能场景可分为 6 大模块,覆盖从镜像获取到容器运维的全流程操作:
一、镜像管理模块(镜像是容器的 “模板”)
作用:管理 Docker 镜像(下载、查看、删除、构建),镜像是创建容器的基础,不含运行时数据。
高频命令:
命令 | 核心用途 | 示例 |
---|---|---|
docker images | 列出本地所有镜像(名称、标签、ID、大小) | docker images (显示本地镜像列表)、docker images nginx (仅显示 nginx 相关镜像) |
docker pull | 从远程仓库(如 Docker Hub)下载镜像 | docker pull nginx:latest (下载最新版 Nginx)、docker pull mysql:5.7 (下载 5.7 版本 MySQL) |
docker rmi | 删除本地镜像(需先删除依赖该镜像的容器) | docker rmi nginx:latest (删除 Nginx 镜像)、docker rmi -f 镜像ID (强制删除,忽略依赖) |
docker build | 通过 Dockerfile 构建自定义镜像 | docker build -t myapp:v1 . (在当前目录构建标签为 myapp:v1 的镜像,-t 指定名称和版本) |
docker tag | 为镜像添加标签(便于版本管理或推送仓库) | docker tag myapp:v1 username/myapp:v1 (添加远程仓库标签,用于推送) |
二、容器管理模块(容器是镜像的 “运行实例”)
作用:管理容器生命周期(创建、启动、停止、删除、查看),容器是镜像运行后的动态实例,包含独立文件系统。
高频命令:
命令 | 核心用途 | 示例 |
---|---|---|
docker run | 创建并启动容器(最核心命令,支持多参数) | docker run -d --name mynginx -p 80:80 nginx (-d 后台运行,--name 命名,-p 端口映射) |
docker ps | 列出容器(默认显示运行中,-a 显示所有) | docker ps (查看运行中容器)、docker ps -a (查看所有容器,含已停止) |
docker start/stop | 启动 / 停止已存在的容器 | docker start mynginx (启动容器)、docker stop mynginx (停止容器) |
docker restart | 重启容器 | docker restart mynginx (重启名为 mynginx 的容器) |
docker rm | 删除已停止的容器(-f 强制删除运行中容器) | docker rm mynginx (删除停止的容器)、docker rm -f mynginx (强制删除运行中容器) |
docker exec | 进入运行中的容器执行命令(常用交互模式) | docker exec -it mynginx /bin/bash (-it 交互模式,进入容器终端) |
三、容器数据管理模块(保障数据持久化)
作用:管理容器与宿主机之间的数据交互(挂载目录 / 文件、使用数据卷),避免容器删除后数据丢失。
高频命令:
命令 | 核心用途 | 示例 |
---|---|---|
docker volume create | 创建数据卷(独立于容器的持久化存储) | docker volume create mydata (创建名为 mydata 的数据卷) |
docker volume ls | 列出所有数据卷 | docker volume ls (显示本地数据卷列表) |
docker volume rm | 删除未使用的数据卷 | docker volume rm mydata (删除 mydata 数据卷) |
docker run -v | 挂载宿主机目录 / 数据卷到容器(数据共享) | docker run -d -v /host/data:/container/data nginx (宿主机 /host/data 挂载到容器 /container/data)、docker run -d -v mydata:/container/data nginx (数据卷 mydata 挂载到容器) |
四、容器网络管理模块(实现容器间 / 容器与外部通信)
作用:管理 Docker 网络(创建网络、连接容器、查看网络),实现容器间隔离或互通,以及容器访问外部网络。
高频命令:
命令 | 核心用途 | 示例 |
---|---|---|
docker network ls | 列出本地所有 Docker 网络 | docker network ls (显示网络类型、名称、ID) |
docker network create | 创建自定义网络(常用桥接模式) | docker network create mynet (创建名为 mynet 的桥接网络) |
docker network connect | 将容器连接到指定网络(实现容器间通信) | docker network connect mynet mynginx (将 mynginx 容器接入 mynet 网络) |
docker network disconnect | 断开容器与网络的连接 | docker network disconnect mynet mynginx (将 mynginx 容器从 mynet 网络移除) |
docker run --network | 启动容器时指定网络 | docker run -d --name mynginx --network mynet nginx (在 mynet 网络中启动容器) |
五、仓库交互模块(镜像的 “存储与分发中心”)
作用:与远程镜像仓库(如 Docker Hub、私有仓库)交互(登录、推送、搜索镜像),实现镜像的共享与分发。
高频命令:
命令 | 核心用途 | 示例 |
---|---|---|
docker login | 登录远程镜像仓库(如 Docker Hub) | docker login (按提示输入用户名和密码)、docker login registry.example.com (登录私有仓库) |
docker logout | 退出远程镜像仓库 | docker logout (退出 Docker Hub)、docker logout registry.example.com (退出私有仓库) |
docker push | 将本地镜像推送到远程仓库 | docker push username/myapp:v1 (推送镜像到 Docker Hub 个人仓库) |
docker search | 在 Docker Hub 搜索镜像 | docker search nginx (搜索 nginx 相关镜像,显示星级、描述) |
六、系统信息查看模块(监控 Docker 状态)
作用:查看 Docker 系统信息、容器 / 镜像详情、资源占用,用于排查问题和监控状态。
高频命令:
命令 | 核心用途 | 示例 |
---|---|---|
docker info | 查看 Docker 系统详细信息(版本、镜像数、容器数等) | docker info (显示系统架构、存储驱动、网络模式等) |
docker inspect | 查看容器 / 镜像的详细元数据(配置、网络、挂载等) | docker inspect mynginx (查看 mynginx 容器的详细信息)、docker inspect nginx:latest (查看 Nginx 镜像详情) |
docker logs | 查看容器日志(实时日志用 -f 参数) | docker logs mynginx (查看容器历史日志)、docker logs -f mynginx (实时跟踪容器日志) |
docker stats | 实时查看容器的资源占用(CPU、内存、网络) | docker stats (实时显示所有运行中容器的资源使用情况,按 Ctrl+C 退出) |
总结
Docker 基础命令的 6 大模块逻辑清晰,覆盖 “镜像获取→容器创建→数据持久化→网络配置→镜像分发→状态监控” 的全流程:
- 镜像管理:获取 / 构建镜像,是容器的基础;
- 容器管理:操作容器生命周期,是核心运维对象;
- 数据管理:保障数据不丢失,解决容器 “临时性” 问题;
- 网络管理:实现容器通信,是分布式部署的关键;
- 仓库交互:实现镜像共享,便于团队协作;
- 信息查看:监控系统状态,用于问题排查。