docker 在底层使用自己的存储驱动 storage driver ,AUFS(基于联合存储文件系统)
1、Docker存储
1.1 镜像如何存储
1.1.1 截取的nginx的分层
1.1.2 nginx这个镜像怎么存的使用:
GraphDriver 图驱动 
"GraphDriver": {"Data": {"LowerDir": "/var/lib/docker/overlay2/30d72f9a20112cb7ec61c0beac2accea933561f2f48e3ab717a480c27e55126e/diff:/var/lib/docker/overlay2/2c88f2cc7d9548e56e7d376881e2c837f64860ac66db1cc34f2a98918f0627e0/diff:/var/lib/docker/overlay2/9fce0d275065d22e7e594f1dcb5346bc797b6dc34e02ae671572028164a81d4f/diff:/var/lib/docker/overlay2/0b4cad843b5e51732bb0b3765ca68beaba2bd62430860ca338a481785f3fb01e/diff:/var/lib/docker/overlay2/cea5756e5a8227d8fa1b23ff6c7f3f67563ce14120756ae9ce0b4e252dbdc546/diff","MergedDir": "/var/lib/docker/overlay2/d91fbd0fb638b5505137e691886eb928c91fd574f154d2095675deef8d30dbd5/merged","UpperDir": "/var/lib/docker/overlay2/d91fbd0fb638b5505137e691886eb928c91fd574f154d2095675deef8d30dbd5/diff","WorkDir": "/var/lib/docker/overlay2/d91fbd0fb638b5505137e691886eb928c91fd574f154d2095675deef8d30dbd5/work"},
LowerDir :底层目录; 这个diff文件 (只是存储不同);包含小型linux和装好的软件
“LowerDir”: “/var/lib/docker/overlay2/30d72f9a20112cb7ec61c0beac2accea933561f2f48e3ab717a480c27e55126e/diff 用户文件 :/var/lib/docker/overlay2/2c88f2cc7d9548e56e7d376881e2c837f64860ac66db1cc34f2a98918f0627e0/diff 用户文件 :/var/lib/docker/overlay2/9fce0d275065d22e7e594f1dcb5346bc797b6dc34e02ae671572028164a81d4f/diff docker 的启动命令 :/var/lib/docker/overlay2/0b4cad843b5e51732bb0b3765ca68beaba2bd62430860ca338a481785f3fb01e/diff nginx 配置文件 :/var/lib/docker/overlay2/cea5756e5a8227d8fa1b23ff6c7f3f67563ce14120756ae9ce0b4e252dbdc546/diff”, 小linux系统

倒着看
- 小linux系统(FROM apline) + Dockerfile的每一个命令可能都引起了系统的修改,所以和git 一样,只记录变化
- 我们进入到这个镜像启动的容器,容器的文件系统就是镜像的;
- docker ps -s;可以看到这个容器真正用到的文件大小 1.12K左右
- 容器会自己建立层;如果想要改东西,把改的内容复制到容器层即可 docker inspect container ```bash “LowerDir”: “/var/lib/docker/overlay2/41e4fa41a2ad1dca9616d4c8254a04c4d9d6a3d462 c862f1e9a0562de2384dbcinit/diff:/var/lib/docker/overlay2/e3b8bdbb0cfbe5450696c470994b3f99e 8a7942078e2639a788027529c6278f7/diff:/var/lib/docker/overlay2/67b380 2c6bdb5bcdbcccbbe7aed20faa7227d584ab37668a03ff6952e631f7f2/diff:/var /lib/docker/overlay2/f56920fac9c356227079df41c8f4b056118c210bf4c50bd 9bb077bdb4c7524b4/diff:/var/lib/docker/overlay2/0e569a134838b8c20403 39c4fdb1f3868a7118dd7f4907b40468f5fe60f055e5/diff:/var/lib/docker/ov erlay2/2b51c82933078e19d78b74c248dec38164b90d80c1b42f0fdb14249532071 66e/diff”, “MergedDir”: “/var/lib/docker/overlay2/41e4fa41a2ad1dca9616d4c8254a04c4d9d6a3d462 c862f1e9a0562de2384dbc/merged”, “UpperDir”: (镜像的上层可以感知变化) “/var/lib/docker/overlay2/41e4fa41a2ad1dca9616d4c8254a04c4d9d6a3d 462c862f1e9a0562de2384dbc/diff”,【容器的修改后的文件,保存再宿主机哪里呀。 容器删除后,那些容器目录还存在吗?一定不再】 “WorkDir”: “/var/lib/docker/overlay2/41e4fa41a2ad1dca9616d4c8254a04c4d9d6a3d462 c862f1e9a0562de2384dbc/work”
```
MergedDir :
合并目录;
容器最终的完整工作目录全内容都在合并层;
数据卷在容器层产生;
所有的增删改都在容器层;
UpperDir :上层目录; 写实复制
WorkDir :工作目录(临时层),pid;
