使用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更詳細:
下面的示例顯示了可能的語法--mount和--tmpfs語法,並--mount首先給出。
--tmpfs和--mount行為之間的差異
- 該
--tmpfs標志不允許您指定任何可配置選項。 - 該
--tmpfs標志不能與swarm服務一起使用。你必須使用--mount。
在容器中使用tmpfs mount
要在容器中使用tmpfs掛載,請使用--tmpfs標志,或使用--mount帶有type=tmpfs和destination選項的 標志。沒有 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的文件模式。例如,700或0770。默認為1777或世界可寫。 |
以下示例將tmpfs-modeto 設置為1770,以便它在容器中不是世界可讀的。
docker run -d \ -it \ --name tmptest \ --mount type=tmpfs,destination=/app,tmpfs-mode=1770 \ nginx:latest
