Docker資料卷 轉載自簡書
阿新 • • 發佈:2018-12-14
Docker資料卷
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