docker学习总结(三)

今天来看看容器对应的文件系统

如下图,首先我们可以看到当前总共有21个container(22是包含了CONTAINER title的),那这22个container在宿主机上都保存在哪里呢?从右图可以看到所有的container都保存在宿主机/mnt/sda1/var/lib/docker/containers目录下面

docker学习总结(三)_第1张图片docker学习总结(三)_第2张图片

这里补充一点,左图看到的containerID是12位的,而右图的containerID非常长,实际上右图是容器的全称ID,而我们通常使用其前12位代表容器ID。这通过docker inspect -f '{{.ID}}' containerID命令也可以进行检验。

docker学习总结(三)_第3张图片

接下来,我们看看如果要上传文件到container或者从container中取文件如何操作。

执行docker exec -it containerID /bin/bash进入container,在/opt/webapp目录下创建一个文件2020217.txt,然后我们去宿主机上看看该文件在哪里。

docker学习总结(三)_第4张图片

搜索文件名可以看到该文件有两个,分别位于以下目录

/mnt/sda1/var/lib/docker/overlay2/f01c636d904fda1625b5c972ae5e9d422ef7622f31d6a162fac652347e1aceed/merged/opt/webapp

/mnt/sda1/var/lib/docker/overlay2/f01c636d904fda1625b5c972ae5e9d422ef7622f31d6a162fac652347e1aceed/diff/opt/webapp

那这两个目录对应什么呢?查询知容器对应有4个目录,LowerDir、MergedDir、UpperDir、WorkDir,其中LowerDir为只读的镜像层,因image layer可以分为多层,故LowerDir可以有多个目录;MergedDir为容器的挂载层,即显示出来的文件系统层;UpperDir为数据读写层,所有对容器数据的修改都发生在这一层,WorkDir为OverlayFS的工作目录。

docker学习总结(三)_第5张图片

知道以上这些,如果我们要进行上传下载文件,就很方便了。

 

 

 

 

你可能感兴趣的:(云开发)