1. 程式人生 > >Docker資料卷 轉載自簡書

Docker資料卷 轉載自簡書

Docker資料卷

96 岦_ 關注

2015.11.11 17:52* 字數 385 閱讀 5322評論 2喜歡 5

Docker資料管理和網路基礎


預設情況下,當用戶退出容器而容器中又沒有非守護程序在執行時,容器會進入關閉狀態,同時,資料的修改會保留在層級的可寫檔案系統內。當用戶需要重新開啟一個容器時,是無法訪問原來所做的修改的,而是恢復到映象的初始化狀態。為了解決資料持久化的問題,Docker提供了卷和卷容器機制。

1、卷

簡單說來,卷就是將宿主機中的某個目錄,mount到容器中,這樣,在容器中此目錄下的修改,即便容器關閉,資料也會保留下來,供宿主機和其他容器訪問。

有很多種使用方式,例如:

1、在執行容器的時候,在Docker中建立一個數據卷

docker run -dti -v /data centos
#在docker中會有/data目錄,這個目錄不歸屬於層級檔案系統
ls /data -d
/data

2、將宿主機的一個目錄,掛在到容器裡,這種方式,資料可以儲存在宿主機中

#例如將宿主機的/var/data掛載到容器中的/data
docker run -tdi -v /var/data:/data centos

3、掛載單個檔案到容器中

docker run -tdi ~/dbback.tar.gz:/dbback.tar.gz centos

2、資料卷容器

資料卷容器的作用是,其中掛載的資料卷,可以被使用它的容器,共同使用。也就是多個容器之間可以同時使用這個資料卷,容器對他的寫入內容,在其他容器也能看到。

建立建立一個數據卷容器

#建立一個包含資料卷的容器供其他容器使用,這個容器並不需要一直開啟
docker run -tdi -v /data --name data_s centos
#建立兩個容器,使用這個資料卷容器
docker run -ti --volumes-from data_s  --name web1 centos
docker run -ti --volumes-from data_s  --name web2 centos
#此時這兩個容器,都可以共同讀寫/data目錄了
#如果需要將資料同步到宿主機的目錄中,則建立資料卷容器的時候,選擇掛載宿主機的目錄,如:
docker run -tdi -v /data:/data --name data_s centos