Ubuntu基础镜像ubuntu:latest
以ubuntu为例:
我从dockerhub上pull这个容器到本地
docker pull ubuntu:latest
root@docker:~# docker image inspect ubuntu:latest
"GraphDriver": {
"Data": {
"MergedDir": "/var/lib/docker/overlay2/ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32/merged",
"UpperDir": "/var/lib/docker/overlay2/ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32/diff",
"WorkDir": "/var/lib/docker/overlay2/ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32/work"
},
"Name": "overlay2"
},
一看有三个目录,其实三个目录都有共同的一个父目录:/var/lib/docker/overlay2/ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32/
进入这个目录看看:
root@docker:~# cd /var/lib/docker/overlay2/ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32/
root@docker:/var/lib/docker/overlay2/ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32# ls -al
total 16
drwx--x--- 3 root root 4096 Jan 27 06:38 .
drwx--x--- 42 root root 4096 Jan 27 06:38 ..
-rw------- 1 root root 0 Jan 27 06:38 committed
drwxr-xr-x 17 root root 4096 Jan 27 06:31 diff
-rw-r--r-- 1 root root 26 Jan 27 06:31 link
里面包含一个文件diff,每一层的改变都放在diff中。这一层就是rootfs,每个linux系统都会包含这么一系列文件。这个是image是ubuntu的容器镜像,还没有运行起来,因此整个ubuntu的基础镜像只有一层,没有下层。
root@docker:/var/lib/docker/overlay2/ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32# ls -al diff/
total 68
drwxr-xr-x 17 root root 4096 Jan 27 06:31 .
drwx--x--- 3 root root 4096 Jan 27 06:38 ..
lrwxrwxrwx 1 root root 7 Oct 6 16:47 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Apr 15 2020 boot
drwxr-xr-x 2 root root 4096 Oct 6 16:58 dev
drwxr-xr-x 30 root root 4096 Oct 6 16:58 etc
drwxr-xr-x 2 root root 4096 Apr 15 2020 home
lrwxrwxrwx 1 root root 7 Oct 6 16:47 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Oct 6 16:47 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 Oct 6 16:47 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 10 Oct 6 16:47 libx32 -> usr/libx32
drwxr-xr-x 2 root root 4096 Oct 6 16:47 media
drwxr-xr-x 2 root root 4096 Oct 6 16:47 mnt
drwxr-xr-x 2 root root 4096 Oct 6 16:47 opt
drwxr-xr-x 2 root root 4096 Apr 15 2020 proc
drwx------ 2 root root 4096 Oct 6 16:58 root
drwxr-xr-x 5 root root 4096 Oct 6 16:58 run
lrwxrwxrwx 1 root root 8 Oct 6 16:47 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Oct 6 16:47 srv
drwxr-xr-x 2 root root 4096 Apr 15 2020 sys
drwxrwxrwt 2 root root 4096 Oct 6 16:58 tmp
drwxr-xr-x 13 root root 4096 Oct 6 16:47 usr
drwxr-xr-x 11 root root 4096 Oct 6 16:58 var
# 查看这个link
root@docker:/var/lib/docker/overlay2/ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32# cat link
VY4F76SLTQSYWM3OM772363QDK
root@docker:/var/lib/docker/overlay2/ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32# ls -al ../l/VY4F76SLTQSYWM3OM772363QDK
lrwxrwxrwx 1 root root 72 Jan 27 06:31 ../l/VY4F76SLTQSYWM3OM772363QDK -> ../ef811b8fd1c6e1642ffb572ae5971b971709c88a486c22ff4654e02233d2ad32/diff
发现这个link目录,只是用了一个短名字而已,依然指向了diff目录,用短名称为了防止mount时文件过长。
运行ubuntu:latest
root@docker:~# docker exec -it 6d1fa5d59f6e /bin/bash
root@6d1fa5d59f6e:/# ls
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr var wtao.txt
root@6d1fa5d59f6e:/# mount |grep overlay
overlay on / type overlay (rw,relatime,lowerdir=/var/lib/docker/overlay2/l/6ZR2PMR3HSLWMCBFKPNZNXKOQP:/var/lib/docker/overlay2/l/VY4F76SLTQSYWM3OM772363QDK,upperdir=/var/lib/docker/overlay2/83c80d976b3c87eb9a025cd7454e218df180fba44e98d30e9b1cabba796beac3/diff,workdir=/var/lib/docker/overlay2/83c80d976b3c87eb9a025cd7454e218df180fba44e98d30e9b1cabba796beac3/work)
暂无评论