首页 > 技术文章 > docker-tmpfs挂载

wwchihiro 2018-07-16 11:44 原文

使用tmpfs挂载

绑定装置允许在主机和容器之间共享文件,以便即使在容器停止后也可以保留数据。

如果你在Linux上运行Docker,你有第三个选择:tmpfs mounts。使用tmpfs装载创建容器时,容器可以在容器的可写层外创建文件。

与卷和绑定挂载相反,tmpfs挂载是临时的,并且仅保留在主机内存中。当容器停止时,将tmpfs删除安装,并且不会保留写在那里的文件。

Docker主机上的tmpfs

这对于临时存储不希望在主机或容器可写层中保留的敏感文件很有用。

tmpfs安装的限制

  • 与卷和绑定装入不同,无法tmpfs在容器之间共享装载。
  • 只有在Linux上运行Docker时才能使用此功能。

--tmpfs--mount行为之间的差异

  • --tmpfs标志不允许指定任何可配置选项。
  • --tmpfs标志不能与swarm服务一起使用。你必须使用--mount

在容器中使用tmpfs mount

tmpfs在容器中使用安装,请使用--tmpfs标志,或使用--mount带有type=tmpfsdestination选项的 标志。没有 sourcetmpfs mounts。以下示例在Nginx容器中创建tmpfsmount /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部分来验证安装是否为mount :

"Tmpfs": {
    "/app": ""
},

删除容器:

$ docker container stop tmptest

$ Docker container rm tmptest

指定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

推荐阅读