泊坞窗:构建图像并启动容器后了解图像层

时间:2019-03-03 11:00:23

标签: docker

我已使用Dockerfile构建了一个docker映像:

-Dockerfile

// get the reference of RecyclerView
 RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
// set a StaggeredGridLayoutManager with 3 number of columns and vertical orientation
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(3, LinearLayoutManager.HORIZONTAL);
recyclerView.setLayoutManager(staggeredGridLayoutManager); // set LayoutManager to RecyclerView

-构建docker映像:

FROM scratch
ADD archlinux.tar /
ENV LANG=en_US.UTF-8
CMD ["/usr/bin/bash"]

然后检查图像:

docker build -t archlinux/base .

然后进入overlay2文件夹并检查会发生什么情况

$ docker images  
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
archlinux/base      latest              7f4e7832243a        43 minutes ago      399MB

现在我尝试运行:

 root@  cd var/lib/docker/overlay2 
#  ls -al
0d5db16fa33657d952e4d7921d9239b5a17ef579e03ecdd5046b63fc47d15038

现在检查/ var / lib / overlay2文件夹

$ docker run -it archlinux/base

现在我看到了更多文件夹。

为什么在运行之前只有一个文件夹,后来又在overlay2中显示了很多文件夹。

如果使用docker命令检查图像,则显示与先前相同:

#  ls -al
total 24
drwx------  6 root  root  4096 Mar  3 15:58 .
drwx--x--x 15 simha users 4096 Mar  3 07:25 ..
drwx------  3 root  root  4096 Mar  3 16:01 0d5db16fa33657d952e4d7921d9239b5a17ef579e03ecdd5046b63fc47d15038
drwx------  4 root  root  4096 Mar  3 16:01 500ef7ee5672b73c778e2080dda0ad7a9101d6b65e5bdb0b52f4e5d2f22fa2b3
drwx------  4 root  root  4096 Mar  3 15:58 500ef7ee5672b73c778e2080dda0ad7a9101d6b65e5bdb0b52f4e5d2f22fa2b3-init
drwx------  2 root  root  4096 Mar  3 15:58 l

如何理解overlay2中的图片及其图层

1 个答案:

答案 0 :(得分:0)

首先请注意,/var/lib/docker/目录的内容用于Docker的内部信息,不应被弄乱。

在该目录中,overlay2目录的内容用于存储构成您的docker映像和容器的docker层。要记住的重要一点是,overlay2是使用union mounts的文件系统。简而言之,它将合并两个文件夹合并为一个。因此,在使用文件系统时,您可能会看到一个文件夹,但是在后台有更多文件夹。这就是docker制作layers的方式。