目錄
數(shù)據(jù)卷Volume的概念
數(shù)據(jù)掛載的實現(xiàn)方式
宿主機(jī)路徑掛載在docker/docker-compose中的使用
卷標(biāo)映射掛載在docker/docker-compose中的使用
A.匿名掛載
B.具名掛載
參考文獻(xiàn):
數(shù)據(jù)卷Volume的概念
在docker內(nèi)有個“數(shù)據(jù)卷持久化”的概念,也就是我們常說的“數(shù)據(jù)掛載”。它的作用是,將宿主機(jī)上的數(shù)據(jù)與容器內(nèi)的數(shù)據(jù)形成映射,實現(xiàn)數(shù)據(jù)的共享或者數(shù)據(jù)的保存;當(dāng)刪除容器的時候,在宿主機(jī)上仍然能夠保留文件目錄,這就是Volume,數(shù)據(jù)卷。
數(shù)據(jù)掛載的實現(xiàn)方式
docker實現(xiàn)數(shù)據(jù)掛載的方式本質(zhì)上分為兩種:
- 通過宿主機(jī)絕對路徑掛載
- 通過卷標(biāo)映射掛載(又包括匿名掛載與具名掛載)
宿主機(jī)路徑掛載在docker/docker-compose中的使用
使用方法:
# docker
docker run -itd -v 宿主機(jī)路徑:容器路徑 --name 容器名 鏡像
# docker-compose.yaml
services:
service_name:
container_name: container_name
image: image:tag
restart: always
volumes:
- 宿主機(jī)路徑:容器路徑
引例如下:
卷標(biāo)映射掛載在docker/docker-compose中的使用
當(dāng)使用卷標(biāo)的方式進(jìn)行數(shù)據(jù)掛載的時候,容器數(shù)據(jù)具體存放在宿主機(jī)的什么路徑其實并不直觀,但是docker提供了方法查看數(shù)據(jù)卷的宿主機(jī)目錄,具體查看的方法如下,后文會在引例中直觀說明。
# 查看所有的數(shù)據(jù)卷
sudo docker volume ls
# 查看指定數(shù)據(jù)卷的詳細(xì)信息
sudo docker volume inspect 數(shù)據(jù)卷名稱
A.匿名掛載
使用方法:
# docker
docker run -itd -v 容器路徑 --name 容器名 鏡像
# docker-compose.yaml
services:
service_name:
container_name: container_name
image: image:tag
restart: always
volumes:
- 容器路徑
引例:?
這種情況下,我們可以看到,當(dāng)我們通過docker volume ls查看卷標(biāo)的時候,我們只能查看到其對應(yīng)的“匿名”的數(shù)據(jù)卷。如下圖所示,如果我們隨便查看一個數(shù)據(jù)卷的詳細(xì)信息(命令為docker volume inspect 數(shù)據(jù)卷),可以看出其掛載點(diǎn)實際是在/var/lib/docker/volumes/<uuid>/_data下面的,其中uuid是docker自動生成的,而/var/lib/docker是docker的默認(rèn)路徑。
B.具名掛載
使用方法:
# docker
docker run -itd -v 數(shù)據(jù)卷名稱:容器路徑 --name 容器名 鏡像
# docker-compose.yaml
services:
service_name:
container_name: container_name
image: image:tag
restart: always
volumes:
- 數(shù)據(jù)卷名稱:容器路徑
volumes:
數(shù)據(jù)卷名稱:
引例:?
這種情況下,我們可以看到,當(dāng)我們通過docker volume ls查看卷標(biāo)的時候,我們能查看到其對應(yīng)的“具名”的數(shù)據(jù)卷??梢钥闯?strong>其掛載點(diǎn)實際是在/var/lib/docker/volumes/<數(shù)據(jù)卷名稱>/_data下面的,/var/lib/docker是docker的默認(rèn)路徑。
別急,特別針對docker-compose,還有另一個現(xiàn)象要看,如下:
文章來源:http://www.zghlxwxcb.cn/news/detail-788887.html
可以看到,當(dāng)我們通過docker-compose啟動容器時,數(shù)據(jù)卷的名稱多了一個software的前綴,而這正是docker-compose.yaml的存放路徑,同時其掛載點(diǎn)在/var/lib/docker/volumes/<yaml路徑_數(shù)據(jù)卷名稱>/_data下面的。特別的,如果docker-compose在根目錄執(zhí)行,則數(shù)據(jù)卷的名稱的前綴會默認(rèn)設(shè)置為default。文章來源地址http://www.zghlxwxcb.cn/news/detail-788887.html
參考文獻(xiàn):
- http://blog.csdn.net/qq_41929714/article/details/128627429
- http://blog.csdn.net/AV_woaijava/article/details/86685950
- http://blog.csdn.net/weixin_43431218/article/details/132341357
到了這里,關(guān)于解析Docker與docker-compose中volume參數(shù)的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!