没有运行卷的docker,容器系统文件存储在哪里?

时间:2021-03-02 03:05:59

标签: docker volume

如果我运行一个没有指定卷的容器,容器系统文件存储在哪里?

  • docker run -it c_name i_name:tag

当我运行一个没有volume的容器时,只在/var/lib/docker/container中创建了容器文件夹,但是如果我在容器文件系统中创建了一个大文件,它会存储在主机上的什么位置?因为我想知道会不会造成占用磁盘大小的问题。

1 个答案:

答案 0 :(得分:3)

容器的存储由不同的层组成,不同的层最终会形成一个合并层。

接下来让我们做一个小实验:

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/ 中找到,层 id 为文件夹,您可以在那里查看磁盘。