數(shù)據(jù)卷
數(shù)據(jù)卷是一個(gè)可供容器使用的特殊目錄,它將主機(jī)操作系統(tǒng)目錄直接映射進(jìn)容器,類似于Linux中的mount操作。
-
特性
- 數(shù)據(jù)卷可以在容器之間共享和重用,容器間傳遞數(shù)據(jù)將變得高效方便;
- 對(duì)數(shù)據(jù)卷內(nèi)數(shù)據(jù)的修改會(huì)立馬生效,無論是容器內(nèi)操作還是本地操作;
- 對(duì)數(shù)據(jù)卷的更新不會(huì)影響鏡像,解耦了應(yīng)用和數(shù)據(jù);
- 卷會(huì)一直存在,直到?jīng)]有容器使用,可以安全地卸載它。
掛載主機(jī)目錄作為數(shù)據(jù)卷
docker run -it --name mount1 -v /webapp:/opt/webapp ubuntu
將docker容器中的/opt/webapp目錄掛載到主機(jī)的/webapp目錄,在容器中/opt/webapp目錄創(chuàng)建一個(gè)文件,退出容器之后,可以在主機(jī)/webapp目錄下看得到
數(shù)據(jù)卷容器
數(shù)據(jù)卷容器也是一個(gè)容器,但是它的目的是專門用來提供數(shù)據(jù)卷供其他容器掛載。
- 步驟:
- 先創(chuàng)建一個(gè)數(shù)據(jù)卷容器
docker run -it -v /dbdata --name dbdata ubuntu - 創(chuàng)建兩個(gè)容器,使用這個(gè)數(shù)據(jù)卷容器
docker run -it -volume-from dbdata --name db1 ubuntu
docker run -it -volume-from dbdata --name db2 ubuntu - 在dbdata中創(chuàng)建一個(gè)文件
cd /dbdata && touch test.log - 在db1和db2中可以看到這個(gè)文件
cd /dbdata && ls -al
- 先創(chuàng)建一個(gè)數(shù)據(jù)卷容器