Skip to content

image / 镜像

默认名是 library , 比如 ubuntu 全写就是 library/ubuntu

镜像的唯一标识是其 ID 和摘要,而一个镜像可以有多个标签。

前一层是后一层的基础,每一层构建完就不会再发生改变。

命令

sh
docker images 'registry.cn-chengdu.aliyuncs.com/qins-img/hlx2' -q | tail -n +2 | xargs -r docker rmi -f
sh
docker images -a

# 清楚 悬空 image
docker image prune

查询

sh
# 默认只能从 hub 上查询
docker search nginx

# 需要先登陆
# docker login myregistry.com
docker search myregistry.com/nginx

查看层

sh
docker history

删除

sh
docker rm

rm 可以是 id 也可以是 <仓库名>:<标签> 还可以是 digests

sh
> docker image ls --digests

REPOSITORY                  TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
node                        slim                sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228   6e0c4c8e3913        3 weeks ago         214 MB

> docker image rm node@sha256:b4f0e0bdeb578043c1ea6862f0d40cc4afe32a4a582f3be235a3b164422be228

build

sh
docker build -t username/imagename:tag .

最后一个. 表示指定 上下文路径,可以简单点理解为 Dockerfile 所在目录,但是这并不准确!

详见:https://vuepress.mirror.docker-practice.com/image/build/#镜像构建上下文-context

多阶段构建

sh
docker build --target builder -t username/imagename:tag .

格式化显示

https://vuepress.mirror.docker-practice.com/image/list/#以特定格式显示

sh
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}"
sh
IMAGE ID       REPOSITORY                                        TAG               SIZE
cc3b6f849a23   hlx2-local                                        latest            147MB
e8a1afec5f87   redis                                             6                 106MB
a68005024ddd   node                                              20                1.1GB

save 和 load

Docker 镜像的导入和导出

https://vuepress.mirror.docker-practice.com/image/other/#保存镜像