卷(volumes) 和 绑定挂载(bind mounts) 容许您在主机和容器之间共享文件,这样即便在容器中止后也能够持久存储数据。html
若是在 Linux 上运行 Docker,那么还有第三种选择:tmpfs
挂载。当您建立带有 tmpfs
挂载的容器时,容器能够在容器的可写层以外建立文件。nginx
与卷和绑定挂载不一样,tmpfs
挂载是临时的,只存留在主机内存中。当容器中止时,tmpfs
挂载将被删除,在那里写入的文件不会被持久化。docker
这对于临时存储您不想在主机或容器可写层中持久存储的敏感文件很是有用。bash
tmpfs
挂载。--tmpfs
或 --mount
标记最初,--tmpfs
标记用于独立容器,--mount
标记用于集群服务。可是从 Docker 17.06 开始,您还能够将 --mount
与独立容器一块儿使用。一般,--mount
标记表达更加明确和冗长。最大的区别是,--tmpfs
标记不支持任何可配置的选项。app
--tmpfs
: 设置 tmpfs
挂载不容许您指定任何可配置选项,而且只能与独立容器一块儿使用。--mount
:由多个键-值对组成,,每一个键-值对由一个 <key>=<value>
元组组成。--mount
语法比 --tmpfs
更冗长:
type
),能够是 bind
、volume
或者 tmpfs
。本主题讨论 tmpfs
,所以类型(type
)始终为 tmpfs
。destination
),将容器中 tmpfs
挂载设置的路径做为其值。能够用 destination
、dst
或者 target
来指定。tmpfs-size
和 tmpfs-mode
选项。请查看下文的 指定 tmpfs 选项。下面的示例尽量同时展现 --mount
和 --tmpfs
两种语法,而且先展现 --mount
。spa
--tmpfs
和 --mount
行为之间的差别--tmpfs
标记不容许指定任何可配置选项。--tmpfs
标记不能用于集群服务。对于集群服务,您必须使用 --mount
。要在容器中使用 tmpfs
挂载, 请使用 --tmpfs
标记, 或者使用带有 type=tmpfs
和 destination
选项的 --mount
标记。没有用于 tmpfs
挂载的源(source
)。code
下面的示例在 Nginx 容器中的 /app
建立一个 tmpfs
挂载。第一个例子使用 --mount
标记,第二个使用 --tmpfs
标记。htm
--mount
:blog
$ 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
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