Docker 帮助类命令
1 | docker --help |
- 功能:显示 Docker 命令行工具的全局帮助信息,包括所有可用的子命令列表,以及如何使用 Docker 命令的基本语法结构。
- 示例:在终端输入
docker --help
,会输出类似以下内容:

1 | docker COMMAND --help |
- 功能:显示具体某个 Docker
子命令的帮助信息,比如想了解
docker run
命令的详细用法和参数说明,就可以使用docker run --help
。它会列出该命令的语法格式、各个参数的含义、以及一些使用示例。 - 示例:执行
docker run --help
,输出内容会包含:

1 | docker help |
- 功能:与
docker --help
类似,会列出 Docker 所有可用的子命令,并且在每个子命令后面提供简短的功能描述,方便用户快速浏览和查找需要的命令。

Docker操作命令
查看docker 概要信息
1 | docker info |

拉取镜像
1 | docker pull [镜像名称]:[标签] |
- 作用:从Docker仓库中拉取现有的镜像
- 示例
构建镜像
1 | docker build -t [镜像名称]:[标签] [Dockerfile所在路径] |
作用:构建自己的Docker镜像
示例:
我没搞dockerfile,所以肯定删不掉
删除镜像
1 | docker rmi [镜像ID或名称] |
示例:

保存/加载镜像
1 | docker save -o [输出文件] [镜像名称] |
登录 / 登出 Docker Hub
要登录到Docker仓库或私有镜像仓库,可以使用以下命令
1 | docker login |
登录后,您可以使用docker pull
和docker push
命令来拉取和推送镜像。
推送镜像到 Docker Hub
1 | docker push [镜像名称] |
查找有没有某个镜像
1 | docker search [OPTIONS] TERM |
- 作用:在 Docker Hub(官方镜像仓库)中搜索符合条件的镜像
TERM
:搜索关键词,例如nginx
、python
等。- 常用选项
--filter=stars=N
:只显示星级评分 ≥ N 的镜像(如--filter=stars=5
)。--filter=is-official=true
:只显示官方镜像。--filter=is-automated=true
:只显示自动化构建的镜像。--limit=N
:限制返回结果数量(默认 25 个)
列出本地镜像
1 | docker images |
- 作用:列出本地所有的镜像,包括运行的没运行的
- 示例:

列出网络
1 | docker network ls |

连接容器到网络
1 | docker network connect [网络名称] [容器ID或名称] |
Docker 容器操作命令
启动类命令
运行容器
1 | docker run 镜像名称或者ID |
功能:这是最常用的启动容器的命令,它会先检查本地是否存在指定镜像,如果不存在则从镜像仓库(默认是 Docker Hub)拉取,然后基于该镜像创建一个新的容器并启动,同时可以指定容器运行的各种参数,如端口映射、挂载卷、环境变量等。
示例
启动一个简单的
hello-world
容器:docker run hello-world
,用于验证 Docker 是否正常工作。启动一个交互式的 Ubuntu 容器:
docker run -it ubuntu bash
,其中-i
表示保持 STDIN 打开,-t
为容器分配一个伪终端,进入容器后可以执行 Ubuntu 系统的命令。如果不需要命令行,就可以使用
-d
后台静默输入如下命令
1
2
3
4
5
6
7
8# 查看 Ubuntu 版本
lsb_release -a
# 查看内核版本
uname -r
# 查看系统进程(容器内的进程)
ps aux由于这里面啥也没有,所以有些命令执行不了
启动一个映射本地 8080 端口到容器 80 端口的 Nginx 容器:
docker run -p 8080:80 nginx
,这样可以通过访问本地的 8080 端口来访问容器内运行的 Nginx 服务。
启动容器
1 | docker start <容器ID或名称> |
功能:用于启动一个或多个已经被停止的容器。与
docker run
不同,docker start
不会创建新容器,只是让已经存在的停止状态的容器重新运行起来。示例:我们打开上面的容器,先用
docker ps -a
查看所有容器,然后启动,使用docker exec -it <容器ID或名称> bash
进入容器
重启容器
1 | docker restart |
- 功能:先停止指定的容器,然后再重新启动它,相当于依次执行
docker stop
和docker start
命令。 - 示例:我们重启上述容器

停止类命令
停止容器
1 | docker stop <容器ID或名称> |
- 功能:向容器内的主进程发送
SIGTERM
信号(优雅停止),等待进程自行关闭(默认等待 10 秒),若超时则发送SIGKILL
强制终止。 - 示例:我们终止上述容器

扩展:
1
docker stop $(docker ps -q) # 结合 ps -q 获取所有容器 ID
强制停止容器
1 | docker kill <容器ID或名称> |
- 作用:直接发送
SIGKILL
信号强制终止容器(不等待进程优雅退出)。 - 适用场景:容器无响应或
docker stop
超时,需要立即终止。示例和上面其实一样
暂停 / 恢复 容器
1 | docker pause <容器ID或名称> # 暂停容器 |
作用:通过 Linux 的
cgroups freezer
机制暂停 / 恢复容器内的所有进程(类似 “冻结”)。特点
- 暂停后容器不占用 CPU 资源,但内存状态会保留。
- 与
stop
不同,pause
不会终止进程,恢复后进程继续运行。
示例:还是以上述Ubuntu容器为例子
查看容器
查看运行中的容器
1 | docker ps |
输出内容:容器 ID、名称、使用的镜像、启动命令、运行时间、端口映射等。
常用参数
-a
:显示所有容器(包括已停止的)。-q
:只输出容器 ID(静默模式,用于脚本自动化)。-l
:显示最近创建的容器。--format
:自定义输出格式(如--format '{{.Names}}: {{.Status}}'
)。
示例:还是查看上述容器的信息
查看容器详细信息
1 | docker inspect <容器ID或名称> |
作用:以 JSON 格式返回容器的底层详细信息(网络配置、挂载点、环境变量等)。
常用过滤:通过
--format
提取特定字段。示例:还是操作上述容器
1
2
3
4
5# 获取容器 IP 地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' my-container
# 获取容器挂载的卷路径
docker inspect --format='{{range .Mounts}}{{.Source}} -> {{.Destination}}{{end}}' my-container
实时监控容器资源使用
1 | docker stats [容器ID或名称...] |
输出内容:CPU、内存、网络 I/O、磁盘 I/O 等实时使用情况。
示例:
1
2docker stats # 监控所有运行中的容器
docker stats my-container # 监控指定容器参数
--no-stream
:只显示一次结果(非实时)。--format
:自定义输出格式(如--format '{{.Name}}: {{.CPUPerc}}'
)。
查看容器日志
1 | docker logs <容器ID或名称> |
常用参数
-f
:实时跟踪日志输出(类似tail -f
)。--tail N
:显示最近的 N 行日志。--since
:显示指定时间之后的日志(如--since 2023-01-01
)。
示例
1
2docker logs -f my-container # 实时查看日志
docker logs --tail 100 my-container # 查看最近 100 行日志
查看容器端口映射
1 | docker port <容器ID或名称> |
示例:
查看容器内运行的进程
1 | docker top <容器ID或名称> |
示例:

查看容器文件系统变更
1 | docker diff <容器ID或名称> |
- 输出:显示容器文件系统相对于基础镜像的变更(
A
添加、D
删除、C
修改)。

查看容器创建时的命令
1 | docker inspect --format='{{.Config.Cmd}}' my-container |
删除容器
删除已停止的容器
1 | docker rm <容器ID或名称> |
作用:该命令会删除指定的已停止的容器,所以也就是,容器在删除之前需要停止
示例:删除上面的容器
删除所有已停止的容器
1 | docker container prune |
- 注意:该命令会删除所有已停止的容器,需谨慎操作。
- 交互提示:执行后会提示确认,可添加
-f
强制删除。
强制删除运行中的容器
1 | docker rm -f <容器ID或名称> |
- 不再赘述,和上面差不多,只不过这个是运行中的都能直接删除,需要确认
Docker 容器内部操作命令
进入容器
1 | docker exec -it [容器ID或名称] [命令] |
- 作用:进入一个正在运行的容器
- 示例其实上面已经演示过了
进程与资源监控
查看进程
1 | ps [选项] |
常用选项
-ef
:显示所有进程的详细信息。-aux
:显示所有进程(包括无控制终端的进程)。
示例:
实时监控进程资源占用
1 | top |
常用操作
q
:退出。1
:显示所有 CPU 核心的使用情况。M
:按内存使用排序。P
:按 CPU 使用排序。
示例:
查看磁盘使用情况
1 | df [选项] |
常用选项
-h
:以人类可读的格式显示。
示例
查看内存使用情况
1 | free [选项] |
常用选项
-h
:以人类可读的格式显示。
示例
文件与目录操作
列出文件和目录
1 | ls [选项] [目录] |
常用选项
-l
:详细列表(显示权限、所有者、大小等)。-a
:显示所有文件(包括隐藏文件)。-h
:以人类可读的格式显示文件大小。
示例:
1
ls -la /app # 列出 /app 目录下的所有文件和目录的详细信息
切换目录
1 | cd [目录路径] |
示例:
1
2cd /var/log # 进入 /var/log 目录
cd .. # 返回上级目录
创建目录
1 | mkdir [选项] [目录名] |
常用选项
-p
:递归创建目录(自动创建不存在的父目录)。1
mkdir -p /data/app/logs # 创建多级目录
复制文件或者目录
1 | cp [选项] [源文件/目录] [目标路径] |
常用选项
-r
:递归复制目录。
示例
1
2cp /app/config.ini /tmp/ # 复制单个文件
cp -r /app /backup/ # 复制整个目录
移动或重命名文件 / 目录
1 | mv [源文件/目录] [目标路径] |
示例:
1
2mv /app/config.ini /app/prod.ini # 重命名文件
mv /app /opt/ # 移动目录
删除文件或目录
1 | rm [选项] [文件/目录] |
常用选项
-r
:递归删除目录。-f
:强制删除(不提示确认)。
示例
1
2rm /app/temp.txt # 删除单个文件
rm -rf /app/cache/ # 强制删除目录及其内容
查看文件内容
1 | cat [文件] |
示例:
1
cat /etc/hosts
分页查看大文件
1 | less [文件] |
- 常用操作
空格
:向下翻页。b
:向上翻页。/关键词
:搜索关键词。q
:退出。
其他操作
下载文件或测试 HTTP 请求
1 | curl [选项] [URL] |
或者
1 | wget [选项] [URL] |
示例:
我那个镜像没下wget

查看网络接口信息
1 | ifconfig |
1 | ip addr show # 查看网络接口信息 |
包管理-linux版
Debian/Ubuntu(APT)
1 | apt-get install [包名] # 安装包 |
CentOS/RHEL(YUM)
1 | yum install [包名] # 安装包 |
输出文本或设置环境变量
1 | echo [文本] |

查看环境变量
1 | env |

修改文件权限
1 | chmod [权限模式] [文件/目录] |
示例:
1
2chmod +x /app/script.sh # 给脚本添加执行权限
chmod 755 /app # 设置目录权限为 rwxr-xr-x
修改文件所有者
1 | chown [所有者]:[组] [文件/目录] |
示例:
1
chown www-data:www-data /var/www/html # 将目录所有权赋予 www-data 用户和组
Dockerfile 相关命令
在 Docker 中,Dockerfile 是用于构建镜像的脚本文件
构建与使用Dockerfile
构建镜像
1 | docker build -t my-flask-app:1.0 . |
参数
-t
:指定镜像标签(名称:版本)。.
:构建上下文路径(Dockerfile 所在目录)。
传递构建参数
1 | docker build --build-arg VERSION=2.0 -t my-app:2.0 . |
核心命令
指定基础镜像
1 | FROM ubuntu:20.04 |
作用:指定构建镜像的基础镜像(必须为第一条指令)。
示例:
1
2FROM python:3.9-slim # 使用官方 Python 镜像
FROM scratch # 构建基础镜像(用于静态编译的应用)
维护者信息
1 | LABEL maintainer="your-email@example.com" |
作用:为镜像添加元数据(推荐使用
LABEL
替代MAINTAINER
)。示例:
1
2LABEL version="1.0"
LABEL description="A simple web application"
运行命令
1 | RUN apt-get update && apt-get install -y \ |
- 作用:在构建镜像时执行命令(如安装软件、编译代码等)。
- 格式:
- shell 格式:
RUN command
(如RUN echo "Hello"
)。 - exec
格式:
RUN ["executable", "param1", "param2"]
(如RUN ["/bin/sh", "-c", "echo Hello"]
)。
- shell 格式:
文件操作命令
复制文件
1 | COPY app.py /app/ |
- 作用:从宿主机复制文件 / 目录到镜像中。
- 参数
--chown
:指定文件所有者(如COPY --chown=user:group src dest
)。
下载远程文件
1 | ADD https://example.com/file.tar.gz /tmp/ |
作用:类似
COPY
,但支持远程 URL 和自动解压(如.tar.gz
文件)。示例
1
ADD app.tar.gz /app/ # 自动解压 tar 文件
设置工作目录
1 | WORKDIR /app |
作用:为后续的
RUN
、COPY
、CMD
等命令设置工作目录。示例:
1
2WORKDIR /app
RUN pip install -r requirements.txt # 等价于在 /app 目录执行
容器启动命令
默认执行命令
1 | CMD ["python", "app.py"] |
- 作用:指定容器启动时默认执行的命令。
- 格式
- exec
格式(推荐):
CMD ["executable", "param1", "param2"]
。 - shell
格式:
CMD command param1 param2
。
- exec
格式(推荐):
- 注意
- 一个 Dockerfile 中只能有一个
CMD
,若有多个则仅最后一个生效。 CMD
可被docker run
的命令覆盖(如docker run my-image bash
)。
- 一个 Dockerfile 中只能有一个
容器入口点位
1 | ENTRYPOINT ["python", "app.py"] |
作用:配置容器启动时执行的命令,且不可被
docker run
覆盖(参数可覆盖)。示例:
1
ENTRYPOINT ["nginx", "-g", "daemon off;"] # 固定启动 Nginx
暴露端口
1 | EXPOSE 8080/tcp |
- 作用:声明容器运行时监听的端口(仅作文档用途,需在
docker run
时用-p
映射)。
定义挂载点
1 | VOLUME ["/data"] |
作用:声明容器运行时的挂载点(用于数据持久化)。
示例
1
VOLUME ["/var/log/app"] # 挂载日志目录