overlayfsoverlayfs的原理在上一篇已经介绍过了。今天我们就来看看如何在docker中使用overlayfs制作rootfs。首先,我们检查容器的文件系统dockercontainerinspectmycontainer|jq'.[0].GraphDriver'willoutputthefollowingresults{"Data":{"LowerDir":"/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279aab-in713diff:/var/lib/docker/overlay2/524a0d000817a3c20c5d32b79c6153aea545ced8eed7b78ca25e0d74c97efc0d/diff","MergedDir":"/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/merged","UpperDir":"/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/diff","WorkDir":"/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/work"},"Name":"overlay2"}可以清楚的看到lowerdir、mergedir、workdir和upperdir。其中upperdir是可写层,MergedDir是最终合并的结果,如果我们执行ls/var/lib/docker/overlay2/63ec1a08b063c0226141a9071b5df7958880aae6be5dc9870a279a13ff7134ab/mergedbindevetchomeliblib64mediamntoptprocrootrunsbinsrvsystmpusrvar便可以看Itistherootdirectoryofthemergedrootfs.Ofcourse,ifyourchangesinupperdirwillalsobereflectedinmergedir.我们可以测试一下进入upperdir进入upperdir#cd/var/lib/docker/overlay2/d4632166ec8af2c274d8575bc60776489b9ca57631da96809ba533d0d065ce93/diff创建文件#cdroot/&&touchtestfile查看mergedDir结果#ls/var/lib/docker/overlay2/d4632166ec8af2c274d8575bc60776489b9ca57631da96809ba533d0d065ce93/merged/root/testfileExecutethemountcommandtoclearlyseehowtheunderlyingdirectoryismountedtothemergedir.overlayon/var/lib/docker/overlay2/d4632166ec8af2c274d8575bc60776489b9ca57631da96809ba533d0d065ce93/mergedtypeoverlay(rw,relatime,lowerdir=/var/lib/docker/overlay2/l/BUMMKXX6V7NKDDXVVYFYMZPD7U:/var/lib/docker/overlay2/l/UAFOM6XM534QEAFJ3OH5NRLJU4,upperdir=/home/chenxy/docker/overlay2/d4632166ec8af2c274d8575bc60776489b9ca57631da96809ba533d0d065ce93/diff,workdir=/home/chenxy/docker/overlay2/d4632166ec8af2c274d8575bc60776489b9ca57631da96809ba533d0d065ce93/work)
