ä¸ºäºæ´ç´è§äºè§£æ°æ®å·æè½½çæä½ï¼å个å®éªä¸ä¸éªè¯æ°æ®å·æè½½çåç§æ åµã
æ åµä¸ãæ¬å°ä¸å卿件æè½½å°å®¹å¨å卿件
é¦å æ¯å½æ¬å°ä¸åå¨è¯¥æä»¶ï¼è容å¨å åå¨è¯¥æä»¶çæ åµï¼å°è¯æä¸åå¨çæä»¶æè½½å°åå¨è¯¥æä»¶ç容å¨ä¸ã以ä¸ä¸ª Alpine éå为ä¾ï¼è¿éæä¸ä¸ªä¿®æ¹åç Alpine éåæäºæ°æ ç¾ï¼å«å volume_testï¼
# æ¬å°ç®å½ä¸åå¨ test æä»¶ã $ docker run --name=test -v ~/test.txt:/etc/hosts -d volume_test 0cba2e50229df7508c616bd456c4ab131f2fe1a88385c34f8a5876fbc577b176 docker: Error response from daemon: oci runtime error: rootfs_linux.go:53: mounting "/var/lib/docker/devicemapper/mnt/6b83c07ebedcb828f34cac69eac5a85ce3a5f59e1e8688c8dae40198671d0ecb/rootfs/etc/hosts" to rootfs "/var/lib/docker/devicemapper/mnt/6b83c07ebedcb828f34cac69eac5a85ce3a5f59e1e8688c8dae40198671d0ecb/rootfs" caused "not a directory". # å¯å¨å®¹å¨å¤±è´¥ãæ åµäºãæ¬å°ä¸å卿件夹æè½½å°å®¹å¨å卿件夹
ç¶åæ¯ææ¬å°ä¸åå¨çæä»¶å¤¹æè½½å°å®¹å¨å åå¨çæä»¶å¤¹ï¼å¨ volume_test éåä¸åå¨ä¸ä¸ª /srv çæä»¶å¤¹ï¼æä»¶å¤¹é颿ä¸ä¸ª index.php æä»¶ã
# æ¬å°ç®å½ä¸åå¨ srvæä»¶å¤¹ã $ docker run --name=test -v ~/srv:/srv -d volume_test c71cf1cfa4932e3e398a7d6c4e2ae94f915b832f5506e374aedb19af4cb1ac62 # å¯å¨æ£å¸¸ï¼ä½æ¯è¿å ¥å®¹å¨åç°ç®å½è¢«æ¸ 空ã $ docker exec -it test sh /srv # ls /srv #ä¸é¢ä¸¤ä¸ªä¾åå·²ç»åè¯æä»¬ï¼æ°æ®å·çæè½½æ¯éè¿ææ¬å°çç®å½è¦çå°å®¹å¨ä¸çãä¹å°±æ¯è¯´ï¼å½å®¿ä¸»æºæä»¶ä¸å卿¶ï¼ä¸è½æè½½ï¼å½æä»¶å¤¹ä¸å卿¶ï¼æè½½å°å®¹å¨ä¼ç¨ä¸ä¸ªç©ºæä»¶å¤¹è¦ç容å¨åæç®å½ã
æ åµä¸ã宿主æºå卿件æè½½å°å®¹å¨ä¸å卿件
æä»¬ç»§ç»ï¼å设宿主æºå卿件ï¼å®¹å¨å ä¸åå¨è¯¥æä»¶ï¼
# æ¬å°ç®å½åå¨ test.txtæä»¶ $ docker run --name=test -v ~/test.txt:/srv/test.txt-d volume_test 2d6853c10643a735ae3d7f3aaac8c6344f9c75170e531f613d08db7cdf484e54 # 容å¨å åå¨ /srv æä»¶å¤¹ï¼éé¢åæ¬æä¸ä¸ª index.php ã $ docker exec -it test sh /srv # ls index.php test.txt /srv # # å¯ä»¥çå°æä»¶æè½½æåãæ åµåã宿主æºå卿件夹æè½½å°å®¹å¨ä¸å卿件夹
æ¥ä¸æ¥æ¯å®¿ä¸»æºå卿件夹ï¼å®¹å¨ä¸åå¨è¯¥æä»¶å¤¹ï¼å®¿ä¸»æºç test æä»¶å¤¹éé¢åå¨ä¸ä¸ª hello æä»¶ï¼
$ docker run --name=test -v ~/test:/srv/test -d volume_test c935ffa0d9fc5e5ac8f213a51a878e71056472b0597d2e385a29e5c748012958 # è¿å ¥å®¹å¨ï¼æ¥çæ¯å¦åå¨ test æä»¶å¤¹ï¼ä»¥åæä»¶å¤¹é颿¯å¦æ hello æä»¶ã $ docker exec -it test sh /srv # ls index.php test /srv # cd test/ /srv/test # ls hello /srv/test #ä¸é¢ä¸¤ä¸ªä¾å说æäºï¼å®¹å¨å é¨å¦æä¸å卿件ï¼å®¿ä¸»æºç´æ¥æè½½ã
æ åµäºãå®¿ä¸»æºæä»¶å¤¹æè½½å°å®¹å¨æä»¶
æ¥ä¸æ¥å设宿主æºåå¨ test æä»¶å¤¹ï¼è容å¨å é¨åå¨çæ¯å为 test æä»¶ï¼è¿æ ·æè½½ä¼ææ ·å¢ï¼
$ docker run --name=test -v ~/test:/srv/test-d volume_test 385bc78e5333460da11f04535da27a3fd226df218f95c970ff2dd5609b17f816 docker: Error response from daemon: oci runtime error: rootfs_linux.go:53: mounting "/var/lib/docker/devicemapper/mnt/fd5c42e844c3550d1a372ed939ed57f90dcacbd375dfed1bedfbb71ef6f3f185/rootfs/etc/hosts" to rootfs "/var/lib/docker/devicemapper/mnt/fd5c42e844c3550d1a372ed939ed57f90dcacbd375dfed1bedfbb71ef6f3f185/rootfs" caused "not a directory".ä¸é¢çæ åµä¸åºæå¤æ¯å¯å¨é误ã
æ åµå ãååæä»¶å¤¹æè½½
é£ä¹åè®¾å®¿ä¸»æºæ¯æä»¶å¤¹ï¼å®¹å¨ä¹æ¯æä»¶å¤¹ï¼ä¸¤ä¸ªæä»¶å¤¹éé¢å 容ä¸ä¸æ ·ï¼å®¿ä¸»æºå 鍿ä¸ä¸ª hello æä»¶ï¼å®¹å¨çæä»¶å¤¹é颿ä¸ä¸ª index.php ï¼
$ docker run --name=test -v ~/srv:/srv -d volume_test 3aec30122bd7010c694e0ff8b77f7b7b6bb6f850c258786db125313060fad43b $ docker exec-it test sh /srv # ls hello /srv # # å¯ä»¥çå°ï¼å®¿ä¸»æºæä»¶å¤¹ä¼è¦ç容å¨å é¨çæä»¶å¤¹ãæ åµä¸ãååæä»¶æè½½
åè®¾å®¿ä¸»æºæä¸ä¸ª test.txt æä»¶ï¼éé¢åç Hello Worldï¼è容å¨éé¢ä¹åå¨ä¸ä¸ª test.txt æä»¶ï¼éé¢åç Hi Worldï¼ç°å¨æè½½æä»¶ï¼
$ docker run --name=test -v ~/test.txt:/srv/test.txt -d volume_test 047cbfe45b5bc868c864fe94f7a22643d52b644947f40260097dbb579de56c5c $ docker exec -it test sh /srv # cat /test Hello World /srv # # 宿主æºä¼è¦ç容å¨çæä»¶ãæ åµå «ãå®¿ä¸»æºæä»¶æè½½å°å®¹å¨æä»¶å¤¹
æåä¸ç§æ åµï¼å®¿ä¸»æºå卿件 test.txtï¼è容å¨å é¨åå¨ä¸ä¸ª test çæä»¶å¤¹ï¼ç°å¨æ æä»¶æè½½å°æä»¶å¤¹ä¸ï¼
$ docker run --name=test -v ~/test.txt:/test -d volume_test 59b5fd74a1e9e17aa2a6a9be7900b16c7dd4b3c424a4fa72a7671fa1c51bdf69 docker: Error response from daemon: oci runtime error: rootfs_linux.go:53: mounting "/var/lib/docker/devicemapper/mnt/b201054ed36a189b5abb599082d0b5bcbe31d07611a0985deefd79d1221447fd/rootfs/home" to rootfs "/var/lib/docker/devicemapper/mnt/b201054ed36a189b5abb599082d0b5bcbe31d07611a0985deefd79d1221447fd/rootfs" caused "not a directory". # å¯å¨å¤±è´¥ã å®¿ä¸»æºæä»¶ 容å¨å æä»¶ å¯å¨åæ°ï¼å ç²è¡¨ç¤ºä¸åå¨ï¼ 容å¨å¯å¨æ åµ