Docker 命令核心语法
docker [OPTIONS] COMMAND [ARG...]
docker
: 主命令。[OPTIONS]
: 全局选项,影响 Docker 客户端本身的行为(如 -H
指定守护进程地址、--tls
启用加密等)。日常使用较少。COMMAND
: 子命令,表示要执行的主要操作(如 run
, ps
, images
)。[ARG...]
: 传递给子命令的参数和选项。
常用 Docker 命令分类详解
以下是按照功能分类的最常用命令及其语法。
1. 容器生命周期管理 (最核心)
命令 | 语法 & 常用选项 | 说明 |
---|
run | docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -d :后台运行 --name :命名容器 -p :端口映射 -p 主机端口:容器端口 -v :数据卷映射 -v 主机目录:容器目录 -e :设置环境变量 --network :指定网络模式 -it :交互模式运行(通常与 /bin/bash 连用) | 创建并启动一个新容器。这是最复杂的命令。 |
start | docker start [OPTIONS] CONTAINER [CONTAINER...] | 启动一个或多个已停止的容器。 |
stop | docker stop [OPTIONS] CONTAINER [CONTAINER...] | 停止一个或多个运行中的容器(发送 SIGTERM 信号)。 |
restart | docker restart [OPTIONS] CONTAINER [CONTAINER...] | 重启一个或多个容器。 |
rm | docker rm [OPTIONS] CONTAINER [CONTAINER...] -f :强制删除(正在运行的) -v :同时删除关联的卷 | 删除一个或多个已停止的容器。 |
exec | docker exec [OPTIONS] CONTAINER COMMAND [ARG...] -it :交互模式(进入容器) -e :设置环境变量 | 在正在运行的容器中执行命令。常用于进入容器:docker exec -it mynginx /bin/bash |
pause /unpause | docker pause CONTAINER docker unpause CONTAINER | 暂停/恢复容器内的所有进程。 |
2. 容器信息查询
命令 | 语法 & 常用选项 | 说明 |
---|
ps | docker ps [OPTIONS] -a :显示所有容器(包括已停止的) -q :只显示容器ID --no-trunc :不截断输出 | 列出容器。docker ps -a 是最常用的组合。 |
logs | docker logs [OPTIONS] CONTAINER -f :跟踪日志输出(类似 tail -f ) --tail N :仅显示最后 N 条日志 -t :显示时间戳 | 获取容器的日志。排查问题必备。 |
inspect | docker inspect [OPTIONS] NAME|ID [NAME|ID...] --format or -f :用 Go 模板格式化输出 | 获取容器(或镜像、网络、卷)的底层详细信息(JSON 格式)。非常强大。 |
stats | docker stats [OPTIONS] [CONTAINER...] | 动态显示容器的实时资源使用情况(CPU、内存、网络IO)。 |
top | docker top CONTAINER [ps OPTIONS] | 显示容器中运行的进程信息。 |
3. 镜像管理
命令 | 语法 & 常用选项 | 说明 |
---|
images | docker images [OPTIONS] [REPOSITORY[:TAG]] -a :显示所有镜像(包括中间层) -q :只显示镜像ID | 列出本地存储的镜像。 |
pull | docker pull [OPTIONS] NAME[:TAG|@DIGEST] | 从镜像仓库(如 Docker Hub)下载镜像。不指定 TAG 则默认为 latest 。 |
push | docker push NAME[:TAG] | 将本地的镜像上传到镜像仓库。 |
rmi | docker rmi [OPTIONS] IMAGE [IMAGE...] -f :强制删除 | 删除本地的一个或多个镜像。 |
build | docker build [OPTIONS] PATH | URL | - -t :指定镜像名和标签 name:tag -f :指定 Dockerfile 路径 | 根据 Dockerfile 构建一个新的镜像。 |
tag | docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] | 为本地镜像创建一个新的标签(别名)。 |
4. 网络管理
命令 | 语法 | 说明 |
---|
network ls | docker network ls | 列出所有 Docker 网络。 |
network create | docker network create [OPTIONS] NETWORK | 创建一个新的 Docker 网络。 |
network inspect | docker network inspect NETWORK | 查看网络的详细信息。 |
network connect | docker network connect NETWORK CONTAINER | 将容器连接到指定网络。 |
network disconnect | docker network disconnect NETWORK CONTAINER | 断开容器与指定网络的连接。 |
5. 数据卷管理
命令 | 语法 | 说明 |
---|
volume create | docker volume create [OPTIONS] VOLUME | 创建一个数据卷。 |
volume ls | docker volume ls | 列出所有数据卷。 |
volume inspect | docker volume inspect VOLUME | 查看数据卷的详细信息。 |
volume rm | docker volume rm VOLUME | 删除一个数据卷。 |
volume prune | docker volume prune | 删除所有未被使用的数据卷。 |
实战命令组合示例
-
从下载到运行一个容器
docker pull nginx:latest
docker run -d --name my-web -p 80:80 nginx
docker ps
docker logs -f my-web
docker exec -it my-web /bin/bash
docker stop my-web
docker rm my-web
docker rmi nginx:latest
-
清理资源
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker image prune -a
docker system prune --volumes
如何获取帮助
如果忘记命令用法,--help
是你最好的朋友。
- 查看所有命令列表:
docker --help
- 查看具体命令的详细帮助(例如
run
):docker run --help