Docker 管理应用数据 - 使用 tmpfs 挂载数据
2018-03-09 20:22
831 查看
原文地址
默认情况下,卷和绑定挂载将挂载到容器的文件系统中,并将其内容存储在主机上。
有时候你不想把容器的数据存储在主机上,但出于性能或安全原因,或者如果数据是不需要持久化的状态信息,你也不希望将数据写入容器的可写层。例如容器的应用程序根据需要创建和使用的一次性临时密码。
为了让容器能够访问数据而不需要永久地写入数据,可以使用
1. 选择
最初,
知识点:初学者应该使用
要挂载的类型
要挂载的目的地
下面的例子在可能的地方展示了
1.1
3. 在容器中使用
要在容器中使用
通过
删除容器:
3.1 指定
下面的示例将
默认情况下,卷和绑定挂载将挂载到容器的文件系统中,并将其内容存储在主机上。
有时候你不想把容器的数据存储在主机上,但出于性能或安全原因,或者如果数据是不需要持久化的状态信息,你也不希望将数据写入容器的可写层。例如容器的应用程序根据需要创建和使用的一次性临时密码。
为了让容器能够访问数据而不需要永久地写入数据,可以使用
tmpfs挂载,该挂载仅存储在主机的内存中(如果内存不足,则为 swap)。当容器停止时,
tmpfs挂载会被移除。如果提交容器,则不会保存
tmpfs挂载。
1. 选择 --tmpfs
或 --mount
标志
最初,--tmpfs标志用于独立容器,而
--mount标志用于 swarm 服务。但是,从 Docker 17.06 开始,也可以在独立容器上使用
--mount。一般来说,
--mount更明确和详细。最大的不同在于
--tmpfs语法将所有选项组合在一个字段中,而
--mount语法将它们分开。下面是每个标志的语法比较。
知识点:初学者应该使用
--mount语法。有经验的用户会更熟悉
--tmpfs语法,但是仍然建议使用
--mount语法,因为调查显示它更加易用。
--tmpfs: Mounts a tmpfs mount without allowing you to specify any configurable options, and can only be used with standalone containers.
--mount标志:由多个名值对组成,逗号分隔,每个键值由
<key> = <value>元组组成。
--mount语法比
--tmpfs更冗长,但键的顺序并不重要,并且标志的值更易于理解。
要挂载的类型
type,可以是 bind、volume 或 tmpfs。本主题主要使用 tmpfs。
要挂载的目的地
destination,将文件或目录挂载在容器中的路径作为其值。 可能被指定为 destination、dst 或 target。
tmpfs-type和
tmpfs-mode选项。
下面的例子在可能的地方展示了
--mount和
--tmpfs语法。
1.1 --tmpfs
和 --mount
之间的表现差异
--tmpfs标志不支持任何配置选项。
--tmpfs标志不能用于 swarm 服务。必须使用
--mount。
2. tmpfs 容器的限制
tmpfs挂载不能在容器之间共享。
tmpfs挂载只能用于 Linux 容器,不支持 Windows 容器。
3. 在容器中使用 tmpfs
挂载
要在容器中使用 tmpfs挂载,使用
tmpfs标志,或使用在容器中使用
--mount标志同时指定
type=tmpfs和
destination选项。下面的例子在 Nginx 容器中的
/app创建了一个
tmpfs挂载。第一个例子使用
--mount标志,第二个使用
--tmpfs标志。
--mount
$ docker run -d \ -it \ --name tmptest \ --mount type=tmpfs,destination=/app \ nginx:latest
--tmpfs
$ docker run -d \ -it \ --name tmptest \ --tmpfs /app \ nginx:latest
通过
docker container inspect tmptest来验证挂载类型是
tmpfs,查看 Mounts 部分:
"Tmpfs": { "/app": "" },
删除容器:
$ docker container stop tmptest $ Docker container rm tmptest
3.1 指定 tmpfs
选项
tmpfs挂载允许两个配置选项,都不是必须的。如果你需要指定这些选项,必须使用
--mount标志。
选项 | 描述 |
---|---|
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
相关文章推荐
- Docker 管理应用数据 - 使用绑定挂载(bind mount)
- Docker之应用数据管理(volume/bind mount/tmpfs)
- Docker 管理应用数据 - 使用 volume
- 使用分区表来提高应用系统的性能并方便数据管理
- Docker入门与应用系列(四)数据卷管理
- Docker 管理应用数据 - 解决卷错误问题
- Docker 容器数据管理:挂载、备份、恢复
- Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据
- Docker 管理应用数据 - 存储概述
- C语言学习10:结构体,结构体应用,联合用法,枚举,fopen函数使用,fseek,ftell的作用和文件结束符EOF,数组和文件交换数据,个人信息管理。
- 【Docker江湖】之hub上镜像的使用,Dockerfile语法解读和数据管理
- docker的使用--数据管理
- 7.Docker-管理应用数据
- 【Docker容器的数据管理】- 使用Dockerfile构建包含数据卷的镜像
- 使用ColdFusion和Flex构建您的第一个数据管理应用程序
- RHCE课程-RH131Linux管理笔记六-Linux文件系统管理、挂载及sudo设置与使用 推荐
- .NET 2.0里使用强类型数据创建多层应用
- 使用autotools进行项目管理简单应用
- .NET 2.0里使用强类型数据创建多层应用
- 使用纯HTML的通用数据管理和服务