容器資料卷

打工人發表於2021-11-07

資料卷概念

容器資料卷是為了實現容器的持久化和同步操作,它完全獨立於容器的生命週期,容器間也可以實現資料共享的 (多個容器可以共享一個地方的資料),因此,Docker 不會在容器刪除時刪除其掛載的資料卷,也不會存在類似的垃圾回收機制,對容器引用的資料捲進行處理

容器資料卷技術保障容器被刪除後,資料不丟失

資料卷特性

  1. 資料卷可以在容器之間共享
  2. 宿主機對容器資料卷雙向繫結
  3. 宿主機可以對資料卷裡的內容直接修改
  4. 卷會一直存在,及時掛載資料卷的容器已經被刪除
  5. 資料卷支援多重掛載

資料卷應用場景

  • 頻繁進入容器比較麻煩,可以將經常使用的容器內配置檔案進行掛載
  • 容器中的資料透過資料卷可以持久化到本地,作為一種備份

透過命令列掛載資料卷

  • 匿名掛載 基本語法:-v 容器內路徑
docker run -d -p 8080:8080 --name tomcat -v /usr/local/tomcat/webapps tomcat

引數解析:
-d 後臺啟動
-p 埠對映
--name 容器名稱
-v 資料卷掛載,/usr/local/tomcat/webapps 為容器內路徑

掛載後透過 docker volume ls 可檢視所有的資料卷
透過 docker inspect 容器 id 也可檢視容器 mount 的資料卷
注:volume name 是隨機生成的字串

  • 具名掛載 基本語法: -v 卷名:容器內路徑
docker run -d -p 8080:8080 --name tomcat -v volumeName:/usr/local/tomcat/webapps tomcat

掛載後透過 docker volume ls 可看到 volumeName 名稱的資料卷

  • 本地掛載(指定路徑掛載) 基本語法:-v 宿主機路徑:容器內路徑
docker run -d -p 8080:8080 --name tomcat -v /root/webapps:/usr/local/tomcat/webapps tomcat

支援多重掛載,如/root/webapps 已掛載到 tomcat 容器,同樣 它也可以繼續掛載到別的容器

docker run -d -p 8081:8080 --name tomcat1 -v /root/webapps:/usr/local/tomcat/webapps tomcat

掛載模式:
ro:readonly,容器中被掛載的目錄在容器中只能進行讀
rw:readwrite(預設),容器中被掛載的目錄在容器中可讀可寫

docker run -d -p 8080:8080 --name tomcat -v /root/webapps:/usr/local/tomcat/webapps:ro tomcat

end~~~

相關文章