Skip to content

image

《Docker — 从入门到实践》 https://vuepress.mirror.docker-practice.com/basic_concept/image/

系统分为 内核 和 用户空间。

Docker 镜像(Image),就相当于是一个 root 文件系统。

layer

前一层是后一层的基础。

每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。
比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。
虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。

docker pull 也是一层一层下载的。

相同 层 只会保留一份,也就是层可以共享。

查看正式占用空间大小

sh
docker system df

ls

docker image ls 列表中只会显示顶层镜像,如果想要看到更多,使用-a 参数。

sh
# 在 mongo:3.2 之后建立的镜像
docker image ls -f since=mongo:3.2

docker image ls -f before=mongo:3.2

# 通过 LABEL 来进行过滤
docker image ls -f label=com.example.version=0.1
sh
docker image ls --format "{{.ID}}: {{.Repository}}"

rm

sh
docker image rm [选项] <镜像1> [<镜像2> ...]

commit

不建议使用

镜像的导入导出

sh
docker save alpine -o filename
docker save alpine | gzip > alpine-latest.tar.gz
sh
docker load -i alpine-latest.tar.gz

虚悬镜像

新就 镜像重名,就会出现

sh
$ docker image ls -f dangling=true
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
<none>              <none>              00285df0df87        5 days ago          342 MB

通过下面的命令删除

sh
$ docker image prune