Docker 镜像常用命令
搜索镜像
搜索存放在 Docker Hub 中的镜像。
命令格式:
docker search [OPTIONS] TERM
可以通过docker search --help
来查看帮助。如下:
选项 | 说明 |
---|---|
-f, --filter | 过滤输出 |
–format | 通过Go语言模板文件展示 |
–limit | 最多输出多少条结果 |
–no-trunc | 不截断输出,显示完整的输出 |
关于 filter
支持三个参数过滤。分别是
- stars 过滤收藏数,例如:
docker search --filter "stars=10" java
,starts 大于10的 - is-automated 过滤是否是自动构建,例如:
docker search --filter "is-automated=true" java
- is-official 过滤是否是官方的仓库,例如:
docker search --filter "is-official=true" java
例:
docker search java --limit 10
下载镜像
使用docker pull 从 Docker Registry 上下载镜像。
选项 | 说明 |
---|---|
-a, --all-tags | 下载库中所有标签的镜像 |
–disable-content-trust | 忽略镜像的校验 |
-q, --quiet | 禁止输出详细信息 |
示例1:
docker pull java
执行该命令后,Docker 会从 Docker Hub 中的 java 仓库下载最新版本的 Java 镜像。
示例2:
指定下载的镜像标签,以及 Docker Registry 地址:
docker pull reg.itmuch.com/java:7
列出镜像
格式:
docker images [OPTIONS] [REPOSITORY[:TAG]]
选项 | 说明 |
---|---|
-a, --all | 展示所有镜像(包括中间镜像层,默认情况下,过滤中间镜像层) |
–digests | 显示摘要信息 |
-f, --filter | 过滤输出 |
–no-trunc | 不截断输出,显示完整镜像信息 |
-q, --quiet | 只显示镜像ID |
示例:
docker images
docker images java
docker images java:8
输出:
删除本地镜像
格式:
docker rmi [OPTIONS] IMAGE [IMAGE...]
选项 | 说明 |
---|---|
-f, --force | 强制删除 |
–no-prune | 不移除该镜像的过程镜像,默认移除 |
示例:
docker rmi nginx
docker rmi 808bc042ca6a
docker rmi -f $(docker images)
保存镜像
格式:
docker save [OPTIONS] IMAGE [IMAGE...]
选项 | 说明 |
---|---|
-o, --output | 输出到文件,而非标准输出 |
示例:
# 将 java 镜像保存成 java.tar 文件
docker save java > java.tar
docker save -o java.tar java
加载镜像
从文件中加载镜像。
格式:
docker load [OPTIONS]
选项 | 说明 |
---|---|
-i, --input | 从文件中加载而非标准输入 |
-q, --quiet | 静默加载 |
示例:
docker load < java.tar
docker load -i java.tar
构建镜像
通过 Dockerfile 构建镜像。有关构建镜像的内容会在后面详细讲解。
这个参数很多,我也没有一一试过,所以这里的仅供参考。
格式:
docker build [OPTIONS] PATH | URL | -
选项 | 缩写 | 参数类型 | 说明 |
---|---|---|---|
–add-host | list | 添加自定义从host到IP的映射,格式为(host:ip) | |
–build-arg | list | 设置构建时的变量 | |
–cache-from | 作为缓存源的镜像 | ||
–cgroup-parent | string | 容器可选的父cgroup | |
–compress | 使用gzip压缩构建上下文 | ||
–cpu-period | int | 限制CPU CFS (Completely Fair Scheduler) 周期 | |
–cpu-quota | int | 限制CPU CFS (Completely Fair Scheduler) 配额 | |
–cpu-shares | -c | int | CPU使用权重(相对权重) |
–cpuset-cpus | string | 指定允许执行的CPU | |
–cpuset-mems | string | 指定允许执行的内存 | |
–disable-content-trust | 忽略校验 | ||
–file | -f | string | 指定Dockerfile的名称,默认是‘PATH/Dockerfile’ |
–force-rm | 删除中间容器 | ||
–iidfile | string | 将镜像ID写到文件中 | |
–isolation | string | 容器隔离技术 | |
–label | list | 设置镜像使用的元数据 | |
–memory | -m | bytes | 设置内存限制 |
–memory-swap | bytes | 设置Swap的最大值为内存+swap,如果设置为-1表示不限swap | |
–network | string | 在构建期间设置RUN指令的网络模式 | |
–no-cache | 构建镜像过程中不使用缓存 | ||
–pull | 总是尝试去更新镜像的新版本 | ||
–quiet | -q | 静默模式,构建成功后只输出镜像ID | |
–rm | 构建成功后立即删除中间容器 | ||
–security-opt | string | 安全选项 | |
–shm-size | bytes | 指定/dev/shm 目录的大小 | |
–tag | -t | list | 设置标签,格式:name:tag,tag可选 |
–target | string | 设置构建时的目标构建阶段 | |
–ulimit | ulimit | Ulimit 选项 |
示例:
docker build -t itmuch/some-repo:some-tag .
当然这样直接执行是不会成功的。该命令后面会有说明。
Docker 命令:https://docs.docker.com/engine/reference/commandline/docker/