如果我运行一个没有指定卷的容器,容器系统文件存储在哪里?
docker run -it c_name i_name:tag
当我运行没有卷的容器时,仅在 中创建容器文件夹/var/lib/docker/container,但是如果我在容器文件系统中创建一个大文件,它存储在主机的什么位置?因为我想知道它是否会导致占用磁盘大小的问题。
容器的存储由不同的层组成,不同的层最终会形成一个合并层。
接下来我们做一个小实验:
1.启动一个容器并设置一个新文件:
# docker run -idt --name trial debian /bin/bash
# docker exec -it trial /bin/bash
root@e6c2b6336753:/# echo "helloworld" > test.txt
root@e6c2b6336753:/# cat test.txt
helloworld
2、找到合并后的存储层id:
# docker inspect --format=" {{ .GraphDriver.Data.MergedDir }} " trial
/var/lib/docker/overlay2/8f2e14d33448cb83e581b2950a69faa827a012904051c845abf550273196f90f/merged
这里,8f2e14d33448cb83e581b2950a69faa827a012904051c845abf550273196f90f是图层 ID。
3.检查层:
# cd /var/lib/docker/overlay2/8f2e14d33448cb83e581b2950a69faa827a012904051c845abf550273196f90f/merged
root@shlava:/var/lib/docker/overlay2/8f2e14d33448cb83e581b2950a69faa827a012904051c845abf550273196f90f/merged# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys test.txt tmp usr var
root@shlava:/var/lib/docker/overlay2/8f2e14d33448cb83e581b2950a69faa827a012904051c845abf550273196f90f/merged# cat test.txt
helloworld
所以,作为一个结论,你可以从上面看到,文件系统的内容可以在/var/lib/docker/overlay2/以 layer id 作为文件夹的地方找到,你可以在那里检查磁盘。