使用docker run執行image並掛上vloume資料
docker run -it -p 8080:80 --name volume-test-web -v /usr/share/nginx/html/ dockerlnmp_nginx:latest /bin/bash
或者使用dockerfile的參數去掛上vloume
FROM debian:wheezy VOLUME /data
查看容器卷實際位子
docker inspect -f {{.Config.Volumes}} volume-test-web
docker volume ls
docker inspect volume-test-web | grep Mounts -A 10
"Mounts": [ { "Type": "volume", "Name": "6a63e054cfeee1e4824250e8d5f3f1525c767c2fbaa09f15779188973748a999", "Source": "/var/lib/docker/volumes/6a63e054cfeee1e4824250e8d5f3f1525c767c2fbaa09f15779188973748a999/_data", "Destination": "/usr/share/nginx/html", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" }
所以容器內的/usr/share/nginx/html會對應到宿機器上的/var/lib/docker/volumes/6a63e054cfeee1e4824250e8d5f3f1525c767c2fbaa09f15779188973748a999/_data
資料共用
如果要授權一個容器訪問另一個容器的Volume,我們可以使用-volumes-from參數來執行docker run。
# docker run -it -h NEWCONTAINER --volumes-from volume-test-web debian /bin/bash
root@NEWCONTAINER:/# ls /usr/share/nginx/html
50x.html index.html
刪除Volume
這個功能可能會更加重要,如果你已經使用docker rm來刪除你的容器,那可能有很多的孤立的Volume仍在佔用著空間。
Volume只有在下列情況下才能被刪除:
• 該容器是用docker rm -v命令來刪除的(-v是必不可少的)。
• docker run中使用了--rm參數
參考資料