Dockerfile(14) - VOLUME 指令詳解

VOLUME 一句話總結

  • 作用:創建一個匿名數據卷掛載點
  • 格式: VOLUME ["/data"] 
  • 詳解:運行容器時可以從本地主機或其他容器掛載數據卷,一般用來存放數據庫和需要保持的數據等

 

實際栗子

VOLUME ["/data"] 
  • 這裏的 /data 目錄就會在運行時自動掛載爲匿名卷,任何向 /data 中寫入的信息都不會記錄進容器存儲層,從而保證了容器存儲層的無狀態化
  • 容器運行時使用 docker run -v mydata:/data  可以覆蓋這個掛載設置【個人測試的時候貌似並不可以,不知道是不是姿勢不對。。】
  • 必須使用雙引號,不能使用單引號

 

注意事項

使用基於 Windows 的容器時

掛載的目錄必須是以下之一:

  • 一個不存在或空的目錄
  • C 盤以外的盤

 

無法通過 VOLUME 掛載主機目錄

  • 爲了鏡像的可移植性,VOLUME 指令不支持指定主機目錄參數(像  docker run -v <主機目錄>:<容器目錄>  是可以指定主機目錄的)
  • 如果要指定,還是要通過 docker run -v 來指定主機目錄哦

 

VOLUMN 指令後面的步驟

如果在 VOLUMN 指令後面的構建步驟更改了卷中的數據,這些數據會被丟棄

 

小栗子

FROM ubuntu
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting
VOLUME /myvol

 

運行容器

docker run -it -d test

沒有用 -v 掛載卷

 

通過 docker inspect 查看掛載卷

docker inspect 3d2f

可以看到 Volumes 空

"Volumes": {
    "/myvol": {}
},

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章