使用tmpfs挂载
预计阅读时间:4分钟
卷和绑定挂载使您可以在主机和容器之间共享文件,以便即使容器停止后也可以保留数据。
如果您在Linux上运行Docker,则还有第三种选择:tmpfs
挂载。当创建带有tmpfs
安装架的容器时,该容器可以在该容器的可写层之外创建文件。
与卷和绑定挂载相反,tmpfs
挂载是临时的,并且仅持久保存在主机内存中。当容器停止时,tmpfs
挂载将被删除,并且在该容器中写入的文件将不会保留。
这对于在主机或容器可写层中临时存储您不想持久保存的敏感文件很有用。
tmpfs安装的局限性
- 与卷和绑定挂载不同,您不能
tmpfs
在容器之间共享挂载。 - 仅当您在Linux上运行Docker时,此功能才可用。
选择--tmpfs或--mount标志
总的来说,--mount
是更明确和冗长的。最大的区别是该--tmpfs
标志不支持任何可配置的选项。
-
--tmpfs
:挂载tmpfs
挂载而不允许您指定任何可配置的选项,并且只能与独立容器一起使用。 -
--mount
:包含多个键值对,以逗号分隔,每个键值对都由一个<key>=<value>
元组组成。该--mount
语法比更详细--tmpfs
:
下面的示例在可能的地方同时显示--mount
和--tmpfs
语法,并--mount
首先展示。
--tmpfs
和--mount
行为之间的差异
- 该
--tmpfs
标志不允许您指定任何可配置的选项。 - 该
--tmpfs
标志不能与群集服务一起使用。您必须使用--mount
。
在容器中使用tmpfs挂载
要tmpfs
在容器中使用安装座,请使用--tmpfs
标志,或将
--mount
标志与type=tmpfs
和destination
选项一起使用。没有
source
了tmpfs
坐骑。以下示例在Nginx容器中的上创建一个tmpfs
安装
/app
。第一个示例使用--mount
标志,第二个示例使用--tmpfs
标志。
$ docker run -d \
-it \
--name tmptest \
--mount type=tmpfs,destination=/app \
nginx:latest
$ docker run -d \
-it \
--name tmptest \
--tmpfs /app \
nginx:latest
tmpfs
通过运行docker container inspect
tmptest
并查找以下Mounts
部分来验证该安装座是否为安装座:
"Tmpfs": {
"/app": ""
},
卸下容器:
$ docker container stop tmptest
$ docker container rm tmptest
指定tmpfs选项
tmpfs
挂载允许两个配置选项,都不是必需的。如果需要指定这些选项,则必须使用该--mount
标志,因为该--tmpfs
标志不支持它们。
选项 | 描述 |
---|---|
tmpfs-size |
tmpfs安装的大小(以字节为单位)。默认情况下是无限的。 |
tmpfs-mode |
tmpfs的文件模式(八进制)。例如700 或0770 。默认为1777 或世界可写。 |
以下示例将设置tmpfs-mode
为1770
,以使其在容器内不被世界范围内读取。
docker run -d \
-it \
--name tmptest \
--mount type=tmpfs,destination=/app,tmpfs-mode=1770 \
nginx:latest