Docker存儲卷
阿新 • • 發佈:2018-11-09
ont sbin tin 使用方式 lib64 pri mage home nac docker存儲卷:
docker容器卷的使用方式: 1 Docker 管理卷: docker run -it --name [名稱] -v [docker內部的卷] [鏡像名稱] 具體使用: docker run -it --name testvolume -d -v /data/mydata 75835a67d134 查看存儲卷映射的目錄: 命令:docker inspect f878a628f152 "Mounts": [ { "Type": "volume", "Name": "dd91ef9ae17175499d490c36e70033e4701a2d66337f8e6435503bd9ddd1811b", --卷的uuid "Source": "/var/lib/docker/volumes/dd91ef9ae17175499d490c36e70033e4701a2d66337f8e6435503bd9ddd1811b/_data", --宿主機中的所在位置 "Destination": "/data/mydata", --容器中的目錄 "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } 測試驗證是否關聯: 在宿主機目錄中創建測試文件: [root@www10:23:05_data]#pwd /var/lib/docker/volumes/dd91ef9ae17175499d490c36e70033e4701a2d66337f8e6435503bd9ddd1811b/_data [root@www10:23:06_data]#echo "holle world" > test.html 在容器中相對應目錄查詢: [root@f878a628f152 /]# cd data/mydata/ [root@f878a628f152 mydata]# ls [root@f878a628f152 mydata]# ls test.html 在容器中添加一些內容: [root@f878a628f152 mydata]# echo hello yl >> test.html [root@f878a628f152 mydata]# cat test.html holle world hello yl 在宿主機中查看: [root@www10:23:45_data]#cat test.html holle world hello yl 當使用--rm 一次性啟動的時候退出時候,會一並刪除宿主機目錄中的數據 當使用 -d 做後臺進入運行的時候,退出後刪除容器不會 目錄中數據不會丟失! 2 綁定掛載卷: docker run -it -v [宿主機中目錄]:[容器中目錄] --name [名稱] [鏡像名稱] 具體使用: docker run -it -v /data/dockerdir:/data/mydata --name b2 75835a67d134 查看卷信息: "Mounts": [ { "Type": "bind", "Source": "/data/dockerdir", ---宿主機目錄 "Destination": "/data/mydata", --容器中目錄 "Mode": "", "RW": true, "Propagation": "rprivate" } 當容器刪除後,數據依然存在: [root@www10:36:22dockerdir]#docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d05a6a77992a 75835a67d134 "/bin/bash" 5 minutes ago Exited (0) 22 seconds ago b2 [root@www10:36:24dockerdir]#docker rm b2 b2 [root@www10:36:30dockerdir]#docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@www10:36:32dockerdir]#ls test.html [root@www10:36:49dockerdir]#cat test.html hello world hello yl 再次啟動時即是更換容器內部綁定目錄也可以使用數據: [root@www10:36:51dockerdir]#docker run -it -v /data/dockerdir:/data/web --rm --name b2 75835a67d134 [root@84f4e4aa6a49 /]# ls anaconda-post.log bin data dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var [root@84f4e4aa6a49 /]# cd data/ [root@84f4e4aa6a49 data]# ls web [root@84f4e4aa6a49 data]# cd web/ [root@84f4e4aa6a49 web]# ls test.html .................................................................. 使用模板方式過濾信息: docker inspect -f {{.Mounts}} [鏡像名稱] ................................................. 多個docker容器可以關聯到一個宿主機目錄! 測試: 啟用兩個容器: docker run -it --name b1 -d -v /data/dockerdir:/data/web 75835a67d134 docker run -it --name b2 -d -v /data/dockerdir:/data/web 75835a67d134 [root@www11:01:26~]#docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 84c3bd9718e0 75835a67d134 "/bin/bash" 5 seconds ago Up 4 seconds b2 d8a8f4203f13 75835a67d134 "/bin/bash" 16 seconds ago Up 15 seconds b1 進入目錄後分別在兩個目錄中創建文件: b1中創建文件: [root@d8a8f4203f13 web]# echo hello jim > test12.txt [root@d8a8f4203f13 web]# ls index.html test12.txt test.html [root@d8a8f4203f13 web]# cat test12.txt hello jim b2中創建文件: [root@84c3bd9718e0 web]# echo hello test > index.html [root@84c3bd9718e0 web]# ls index.html test.html 宿主機目錄中查看: [root@www11:01:28~]#cd /data/dockerdir/ [root@www11:09:30dockerdir]#ls index.html test12.txt test.html 刪除docker後查看宿主機目錄數據一樣存在! ............................................................... docker復制存儲卷路徑: 如何復制:具體使用 容器b1: docker run -it --name b2 -d -v /data/dockerdir:/data/web 75835a67d134 不用啟動,只需要存在即可! 容器b2: docker run -it --name b2 --volumes-from b1 75835a67d134 在共享網絡: docker run --name t2 --network container:t1 -it --rm b2
Docker存儲卷