使用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參數
參考資料