前言
简单介绍一下docker的文件系统。
正文
docker 容器启动就是一个文件系统的启动。
在docker中,每一层镜像都具备一些文件。
比如说,有一个centos的镜像。
里面就是一个微小版的文件系统。
然后比如说有第二次镜像。
第二层镜像有文件1和文件2和文件3。
他们合并就形成的了一个新的镜像。那么就有人问了,如果第二次镜像和第一层镜像有相同的文件怎么办?那么第二层镜像会覆盖第一层的。
上面文件5和文件2冲突,那么文件5就会覆盖文件2。
那么我们知道有一个commit的命令会将容器重新打包成一个镜像。那么是整个容器作为一层呢?
不是的。
我们做的文件修改,都在容器层里面。如果使用commit,那么容器层将作为镜像的一层。
下面证明一下。
这里我启动了tomcat。
然后呢,我们指定普通的tomcat容器的webapp里面是没有东西的。
那么我们把webapp.dist 里面的东西拷贝到webapp中来。
然后我们就看到了这只猫了。
现在我们用commit打包一下。
发现这个打包非常的块。
通过docker images 查看一下。
启动一下。
然后查看一下。
嗯,这样就打包成一个新的镜像了,并且能过启动了。
那么我们得查看是否符合我刚才说的。
通过docker inspect查看tomcat:9.0
其镜像结构是这样的。
那么看下docker inspect 查看一下我们刚才打包的新镜像。
多了下面这一层。
结
下一节数据卷。