基本类
启动 docker
systemctl start docker
关闭docker
systemctl stop docker
重新启动 docker
systemctl restart docker
docker设置自启动
systemctl enable docker
查看docker运行状态
systemctl status docker
查看docker版本号等信息
docker version
显示docker的系统信息
包括镜像和容器的数量等
docker info
docker帮助
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 mysql
docker pull docker.io/mysql:latest
docker 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)。
以上显示的磁盘空间占用情况,不包括以下五种方式:
存储在日志驱动程序中的日志文件占用的磁盘空间。如果你的容器生成大量日志数据且未配置日志轮换,则这可能是非常重要的。
容器使用的卷和绑定挂载。
用于容器的配置文件的磁盘空间,这些文件通常很小。
写入磁盘的内存(如果启用了交换)。
如果你正在使用实验性的检查点/恢复功能,则还包括检查点。
评论区