docker從零開始 存儲(四)tmpfs掛載


使用tmpfs掛載

volume和bind mounts允許您在主機和容器之間共享文件,以便即使在容器停止后也可以保留數據。

如果你在Linux上運行Docker,你有第三個選擇:tmpfs mounts。使用tmpfs掛載創建容器時,容器可以在容器的可寫層外創建文件。

與volume和綁定掛載相反,tmpfs掛載是臨時的,並且僅保留在主機內存中。當容器停止時,將tmpfs刪除安裝,並且不會保留寫在那里的文件。

tmpfs安裝的限制

  • 與卷和綁定裝入不同,您無法tmpfs在容器之間共享裝載。
  • 只有在Linux上運行Docker時才能使用此功能。

選擇--tmpfs或--mount標志

最初,該--tmpfs標志用於獨立容器,該--mount標志用於群組服務。但是,從Docker 17.06開始,您還可以使用--mount獨立容器。一般來說, --mount更明確和冗長。最大的區別是該 --tmpfs標志不支持任何可配置選項。

  • --tmpfs:安裝tmpfs掛載而不允許您指定任何可配置選項,並且只能與獨立容器一起使用。

  • --mount:由多個鍵值對組成,以逗號分隔,每個鍵<key>=<value>由一個元組組成--mount語法比--tmpfs更詳細:

    • type安裝件,其可以是bindvolume,或 tmpfs本主題討論tmpfs,因此類型始終如此 tmpfs
    • 安裝在容器中destination的路徑作為其tmpfs掛載的值可以指定為destinationdsttarget
    • tmpfs-typetmpfs-mode選項

下面的示例顯示了可能的語法--mount--tmpfs語法,並--mount首先給出。

--tmpfs--mount行為之間的差異

  • --tmpfs標志不允許您指定任何可配置選項。
  • --tmpfs標志不能與swarm服務一起使用。你必須使用--mount

在容器中使用tmpfs mount

在容器中使用tmpfs掛載,請使用--tmpfs標志,或使用--mount帶有type=tmpfsdestination選項的 標志沒有 source對應tmpfs掛載以下示例在Nginx容器中創建tmpfs掛載  /app第一個示例使用--mount標志,第二個示例使用--tmpfs標志。

[root@benjamincloud ~]# docker run -itd --name tmptest --mount type=tmpfs,dst=/app nginx:latest
470d9ad16381d9aed3b1df5c7eaa57b3596b6aedf3042f62f48cb7236da40d8c

[root@benjamincloud ~]# docker run -itd --name tmptest --tmpfs /app nginx:latest
ccb4dd602219130c9863be918a5d44f24615cce2ae0554d54b474ebb1bf6df4c
 

通過運行docker container inspect tmptest並查找該Mounts部分來驗證安裝是否為 tmpfs mount 

其中 source為空,對應了 上面所說。

指定tmpfs選項

tmpfs安裝允許兩個配置選項,這兩個選項都不是必需的。如果需要指定這些選項,則必須使用該--mount標志,因為該--tmpfs標志不支持它們。

選項 描述
tmpfs-size tmpfs的大小以字節為單位。默認無限制。
tmpfs-mode 八進制中tmpfs的文件模式。例如,7000770默認為1777或世界可寫。

以下示例將tmpfs-modeto 設置1770,以便它在容器中不是世界可讀的。

docker run -d \
  -it \
  --name tmptest \
  --mount type=tmpfs,destination=/app,tmpfs-mode=1770 \
  nginx:latest

 

 


免責聲明!

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



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