基本类
启动 docker
systemctl start docker关闭docker
systemctl stop docker重新启动 docker
systemctl restart dockerdocker设置自启动
systemctl enable docker查看docker运行状态
systemctl status docker查看docker版本号等信息
docker version显示docker的系统信息
包括镜像和容器的数量等
docker infodocker帮助
docker --help镜像类
查看本地镜像
docker images解释:
- REPOSITORY 镜像的仓库源
- TAG 镜像的标签
- IMAGE ID 镜像的id
- CREATED 镜像的创建时间
- SIZE 镜像的大小
扩展命令
| 可选项 | 作用 |
|---|---|
| -a | 列出所有镜像 |
| -q | 只显示镜像的id |
搜索镜像
docker search扩展命令
| 可选项 | 作用 |
|---|---|
| -f <过滤条件>, —filter | 过滤镜像 |
--format | 使用 Go 模板进行漂亮打印搜索 |
--limit <限制数量> | 限制最大搜索结果数 |
--no-trunc | 显示完整的镜像描述 |
举例
通过收藏数量过滤, 搜索STARS数量大于等于5000的 且是官方构建的镜像
- is-official (boolean - true 或 false) - 镜像是否是官方的
- stars (int - number) - 星星数
docker search mysql --filter=stars=5000 --filter is-official=true
拉取镜像
docker pull扩展命令
| 可选项 | 作用 |
|---|---|
| -a, —all-tags | 下载仓库中所有标签的镜像 |
--disable-content-trust | 跳过镜像验证 默认true |
--platform | 设置平台 |
| -q, —quiet | 禁止详细输出 |
举例
以下三个命令是一样的含义,不指定tag默认拉取最新版本
docker pull mysqldocker pull docker.io/mysql:latestdocker pull mysql:latest
拉取amd64平台的镜像
docker pull --platform=linux/amd64 jlesage/firefox
删除镜像
docker rmi扩展命令
| 可选项 | 作用 |
|---|---|
| -f, —force | 是否强制删除 |
--no-prune | 不删除未标记的父类 |
举例
删除镜像可以使用镜像名或镜像Id, 若镜像在运行则会报错
docker rmi 镜像名/镜像ID
强制删除多个镜像,若使用该镜像的容器在运行也会删除
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
删除全部镜像,以下任意一个命令都可以
docker rmi -f $(docker images -aq)docker rmi -f `docker images -aq`加载镜像
docker load扩展命令
| 可选项 | 作用 |
|---|---|
| -i, —input | 从 tar 存档文件读取,而不是标准输入 |
| -q, —quiet | 禁止加载输出 |
举例
从标准输入加载镜像
docker load < busybox.tar.gz
从文件中加载镜像
docker load -i fedora.tar
保存镜像
docker save扩展命令
| 可选项 | 作用 |
|---|---|
| -o, —output | 写入文件,而不是标准输入 |
举例
从标准输入保存镜像
docker save ubuntu:latest > /root/ubuntu.tar
保存到指定目录
docker save -o ./ubuntu-latest.tar ubuntu:latest
容器类
查看正在运行的容器
docker ps扩展命令
| 可选项 | 作用 |
|---|---|
| -a, —all | 显示所有容器(默认只显示正在运行的容器) |
| -f, —filter | 根据提供的条件过滤输出 |
--format | 使用自定义模板格式化输出: ‘table’:以表格格式打印输出,包含列标题(默认) ‘table TEMPLATE’:使用给定的 Go 模板以表格格式打印输出 ‘json’:以 JSON 格式打印 ‘TEMPLATE’:使用给定的 Go 模板打印输出。 |
| -n, —last | 显示最后创建的 n 个容器(包括所有状态),默认值-1 |
| -l, —latest | 显示最新创建的容器(包括所有状态) |
--no-trunc | 不要截断输出 |
| -q, —quiet | 只显示容器ID |
| -s, —size | 显示文件大小 |
举例
显示所有容器
显示所有容器(包含所有状态的)
docker ps -a
过滤器
–f 的格式是键=值对。如果有多个过滤器,则传递多个标志
查找正在运行的且名字包含local-mysql的容器
docker ps -f status=running -f name="local-mysql"
| 过滤器 | 作用 |
|---|---|
| id | 容器ID |
| name | 容器名称 |
| label | 一个任意字符串,代表一个键或者一个键值对。表示为 |
| exited | 一个整数,代表容器的退出码。仅在与 –all 选项一起使用时才有意义。 |
| status | 状态为 created(已创建)、restarting(正在重启)、running(正在运行)、removing(正在移除)、paused(已暂停)、exited(已退出)或 dead(已死亡)其中一种。 |
| ancestor | 筛选出共享给定镜像作为祖先的容器。表示为 |
| before 或 since | 筛选在给定容器 ID 或名称之前或之后创建的容器 |
| volume | 筛选挂载了给定卷或绑定挂载的正在运行的容器。 |
| network | 筛选连接到给定网络的正在运行的容器。 |
| publish 或 expose | 筛选发布或暴露给定端口的容器。表示为 |
| health | 根据容器的健康检查状态筛选容器。可能的状态有 starting(启动中)、healthy(健康)、unhealthy(不健康)或 none(无)。 |
| isolation | 仅适用于 Windows 守护进程。值为 default、process 或 hyperv 之一。 |
| is-task | 筛选作为服务”任务”的容器。布尔选项(true 或 false)。 |
自定义输出格式
自定义输出格式
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{printf \"%.40s\" .Ports}}\t{{.Status}}"
docker ps --format "{{.ID}}: {{.Command}} {{.RunningFor}}"
docker ps --format json
按照Go模板的方式会涉及到以下占位符:
| 过滤器 | 作用 |
|---|---|
| .ID | 容器ID |
| .Image | 镜像ID |
| .Command | 引用的命令 |
| .CreatedAt | 容器创建的时间 |
| .RunningFor | 自容器启动以来的经过时间。 |
| .Ports | 暴露的端口。 |
| .State | 容器状态(例如:”created”(已创建)、”running”(运行中)、”exited”(已退出))。 |
| .Status | 容器状态,包括持续时间与健康状态的详细信息。 |
| .Size | 容器磁盘大小 |
| .Names | 容器名称 |
| .Labels | 分配给容器的所有标签。 |
| .Label | 此容器特定标签的值。例如 ’{{.Label “com.docker.swarm.cpu”}}’ |
| .Mounts | 在此容器中挂载的卷的名称。 |
| .Networks | 连接到这个容器的网络的名称。 |
查看最新创建的n个容器
该选项后面必须加一个数字,否则会报错。该选项显示-n后面数字个容器,无论容器处于什么状态。
docker ps -n 3
查看最新创建的1个容器
该选项显示最新创建的容器,无论该容器处于什么状态。
docker ps -l
不截断输出
容器ID完整输出了
docker ps --no-trunc
精简输出
只输出容器ID
docker ps -q
磁盘容量
容器列表的最右侧增加SIZE列,显示两种不同的磁盘容量大小
docker ps -s

其中,前面的数字表示用于每个容器的可写层的磁盘数据量。 后面括号中“virtual” 表示的是容器使用的只读镜像数据以及可写层所用的磁盘空间总量。多个容器可能会共享一些或全部的只读镜像数据。从同一镜像启动的两个容器共享 100% 的只读数据,而具有共同层的不同镜像的两个容器则共享这些共同层。因此,不能简单地将虚拟大小相加。这可能会大大高估总磁盘使用量。
所有正在运行的容器在磁盘上使用的总磁盘空间是每个容器的 size 和 virtual size 值的组合。如果多个容器从完全相同的镜像启动,这些容器的总磁盘大小将是容器的总和(size of containers)加上一个镜像大小(virtual size – size)。
以上显示的磁盘空间占用情况,不包括以下五种方式:
存储在日志驱动程序中的日志文件占用的磁盘空间。如果你的容器生成大量日志数据且未配置日志轮换,则这可能是非常重要的。
容器使用的卷和绑定挂载。 用于容器的配置文件的磁盘空间,这些文件通常很小。 写入磁盘的内存(如果启用了交换)。 如果你正在使用实验性的检查点/恢复功能,则还包括检查点。