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": {}
},

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM