1. 程式人生 > >Docker容器資料卷的使用

Docker容器資料卷的使用

作用:
 1.容器的持久化
 2.容器間的繼承(主要體現在dockerfile)+共享資料
特點:
 1.卷中的更改可以直接生效
 2.資料卷中的更改不會包含在映象的更新中
 3.資料卷的生命週期,會一直持續到沒有容器使用它為止
使用命令:docker run -it -v /宿主機絕對路徑目錄:/容器目錄 映象名(如果宿主機和容器,沒有目錄則自動建立 並且使兩個路徑相互掛載)
演示:
 1.docker run -it -v /HostComputer:/container centos此時在宿主機的根目錄下建立了一個名為HostComputer的資料夾,並在容器的根目錄下建立了一個名為container 的資料夾(HostComputer資料夾和container已經相互掛載)
圖解:
在這裡插入圖片描述


在這裡插入圖片描述
2.使用命令檢視是否掛載成功:docker inspect 容器id
 首先我們檢視一下此時正在執行的容器id:docker ps
在這裡插入圖片描述
  檢視掛載是否成功: docker inspect 7aed84125df8
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
3.此時說明已經掛載成功,來測試驗證一下
 3.1給宿主機的HostComputer資料夾,新增一個檔案,並寫入(任意)(這裡使用::qwe)字串
 在這裡插入圖片描述
在這裡插入圖片描述
 3.2然後去容器container目錄下檢視是否同步
 在這裡插入圖片描述
 3.3在容器中對host.txt 進行修改,檢視宿主機下的host.txt是否也跟著進行了改變
  在這裡插入圖片描述
  在這裡插入圖片描述
  (注:容器停止退出後,宿主機修改後資料也是同步,只要容器再次啟動,修改的資料會自動更新到容器中

  由此可得出結論此時的掛載是雙向掛載,無論是宿主機或者容器進行改變,其他一方,都會跟著改變;
  那麼以下這個例子,我們來做,宿主機修改資料,容器也跟著改變,但是容器本身不能修改資料(也就是容器只能讀,不能寫
  命令格式(帶許可權):docker run -it -v /宿主機絕對路徑目錄:/容器內目錄:ro 映象名
  docker run -it -v /HostComputer01:/container01:ro centos 此時在宿主機的根目錄下建立了一個名為HostComputer01的資料夾,並在容器的根目錄下建立了一個名為container01 的資料夾(注意:此時容器目錄後面追加了RO許可權)
  在這裡插入圖片描述

  在這裡插入圖片描述
  檢視掛載
在這裡插入圖片描述
測試,修改容器(宿主機修改,資料可以同步到容器中,容器不能對資料進行修改)
在這裡插入圖片描述