重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
在生產環境中使用 Docker,要想實現數據的持久化(所謂Docker的數據持久化即數據不隨著Container的結束而結束)或者需要在多個容器之間進行數據共享,需要將數據從宿主機掛載到容器中,這就會涉及容器的數據管理操作。
Docker數據卷(data volume,注:位置在/var/lib/docker/volumes)是容器可以訪問,但是位置不在root文件系統中的一個目錄。為了能讓容器之間可以共享數據,Docker讓“卷”(volume)可以繞過Docker鏡像的層疊機制。容器中所有對鏡像的改變全部都直接存儲。每個容器都有固定的運行目錄在/var/lib/docker目錄下;而每個容器卷的數據則默認單獨存儲在/var/lib/docker/volumes/目錄底下。 docker run命令的-v選項能夠實現容器間數據卷中數據的互相拷貝。
數據卷Volume的基本使用:
1.管理卷
創建一個自定義容器卷
$ docker volume create my-vol
查看所有容器卷
$ docker volume ls
查看指定容器卷詳情信息
$ docker volume inspect my-vol
2.創建使用指定卷的容器
有了自定義容器卷,我們可以創建一個使用這個數據卷的容器,這里我們以nginx為例:
$ docker run -d -it --name=my-vol -p 8800:80 -v edc-nginx-vol:/usr/share/nginx/html nginx
其中,-v代表掛載數據卷,這里使用自定數據卷my-vol,并且將數據卷掛載到 /usr/share/nginx/html (這個目錄是yum安裝nginx的默認網頁目錄)。
如果沒有通過-v指定,那么Docker會默認幫我們創建匿名數據卷進行映射和掛載。
3.刪除一個卷
$ docker volume rm my-vol
Docker不會在容器被刪除后自動刪除數據卷,并且也不存在垃圾回收這樣的機制來處理沒有任何容器引用的數據卷,無主的數據卷可能會占據很多空間,所以要及時刪除。