使用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更详细:

    • type安装件,其可以是bindvolume,或 tmpfs。本主题讨论tmpfs,因此类型始终如此 tmpfs
    • 将安装在容器中destination的路径作为其tmpfs挂载的值。可以指定为destinationdsttarget
    • tmpfs-typetmpfs-mode选项。

下面的示例显示了可能的语法--mount--tmpfs语法,并--mount首先给出。

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

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

在容器中使用tmpfs mount

要在容器中使用tmpfs挂载,请使用--tmpfs标志,或使用--mount带有type=tmpfsdestination选项的 标志。没有 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的文件模式。例如,7000770。默认为1777或世界可写。

以下示例将tmpfs-modeto 设置为1770,以便它在容器中不是世界可读的。

docker run -d \
-it \
--name tmptest \
--mount type=tmpfs,destination=/app,tmpfs-mode= \
nginx:latest

docker从零开始 存储(四)tmpfs挂载的更多相关文章

  1. docker从零开始 存储(二)volumes 挂载

    使用volumes 卷是保存Docker容器生成和使用的数据的首选机制.mount binds依赖于主机的目录结构,而卷完全由Docker管理.卷绑定安装有几个优点: 与绑定装入相比,卷更易于备份或迁 ...

  2. docker从零开始 存储(一)存储概述

    管理Docker中的数据 默认情况下,在容器内创建的所有文件都存储在可写容器层中.这意味着: 当该容器不再运行时,数据不会持久存在,如果另一个进程需要,则可能很难从容器中获取数据. 容器的可写层紧密耦 ...

  3. Docker 基础知识 - 使用 tmpfs 挂载(tmpfs mounts)管理应用程序数据

    卷(volumes) 和 绑定挂载(bind mounts) 允许您在主机和容器之间共享文件,这样即使在容器停止后也可以持久存储数据. 如果在 Linux 上运行 Docker,那么还有第三种选择:t ...

  4. docker从零开始 存储(五)存储驱动介绍

    关于存储驱动程序 要有效地使用存储驱动程序,了解Docker如何构建和存储镜像以及容器如何使用这些镜像非常重要.您可以使用此信息做出明智的选择,以确定从应用程序中保留数据的最佳方法,并避免在此过程中出 ...

  5. docker从零开始 存储(三)bind mounts

    使用bind mounts 自Docker早期以来bind mounts 一直存在.与volumes相比,绑定挂载具有有限的功能.使用bind mounts时,主机上的文件或目录将装入容器中.文件或目 ...

  6. docker从零开始 存储(六)存储驱动如何选择

    Docker存储驱动程序 理想情况下,将非常少的数据写入容器的可写层,并使用Docker卷来写入数据.但是,某些工作负载要求您能够写入容器的可写层.这是存储驱动程序的用武之地. Docker使用可插拔 ...

  7. docker从零开始(四)集群初体验,docker-machine swarm

    介绍 在第三节中,选择了第二节中编写的应用程序,并通过将其转换为服务来定义它应如何在生产中运行,并生成五个应用实例 在本节中,将此应用程序部署到群集上,在多台计算机上运行它.多容器,多机应用程序通过连 ...

  8. 四个修改Docker默认存储位置的方法

    方法一.软链接 默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root ...

  9. [转帖]四个修改Docker默认存储位置的方法

    四个修改Docker默认存储位置的方法 https://blog.51cto.com/forangela/1949947 易改乾坤关注0人评论27435人阅读2017-07-22 09:18:48   ...

随机推荐

  1. 支持ie的时间控件 html

    连接:http://www.my97.net/demo/resource/2.4.asp#m248 下载测试:链接: https://pan.baidu.com/s/17AdRa2OTLPI7ndiA ...

  2. linux之shell脚本学习篇一

    此文包含脚本服务请求,字符串截取,文件读写内容,打印内容换行. #!/bin/bashretMsg="";while read LINEdo        echo "t ...

  3. Flink State的两张图

    streamTask的invoke方法中,会循环去调用task上的每个operator的initializeState方法,在这个方法中,会真正创建除了savepointStream的其他三个对象, ...

  4. Flink History Job

    history job的写入1. org.apache.flink.runtime.jobmanager,Object JobManagerrunJobManager中指定使用MemoryArchiv ...

  5. Python 装饰器和抽象类

    #装饰器:对类或者函数进行功能的扩展 ''' #第一步:基本函数 def la(): print('脚踏黄河两岸,手拿机密文件,前面机枪扫射,后面炮火连天') #调用函数 la() la() #第二步 ...

  6. BZOJ4361 isn(动态规划+树状数组+容斥原理)

    首先dp出长度为i的不下降子序列个数,显然这可以树状数组做到O(n2logn). 考虑最后剩下的序列是什么,如果不管是否合法只是将序列删至只剩i个数,那么方案数显然是f[i]*(n-i)!.如果不合法 ...

  7. [学习笔记]扩展LUCAS定理

    可以先做这个题[SDOI2010]古代猪文 此算法和LUCAS定理没有半毛钱关系. [模板]扩展卢卡斯 不保证P是质数. $C_n^m=\frac{n!}{m!(n-m)!}$ 麻烦的是分母. 如果互 ...

  8. 强大的JQuery数组封装使用

    JQuery对数组的处理非常便捷并且功能强大齐全,一步到位的封装了很多原生js数组不能企及的功能.下面来看看JQuery数组的强大之处在哪. $.each(array, [callback]) 遍历 ...

  9. SCOI2008奖励关 [状压dp]

    题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再 ...

  10. Codeforces Round #524 (Div. 2) A. Petya and Origami

    A. Petya and Origami 题目链接:https://codeforc.es/contest/1080/problem/A 题意: 给出n,k,k表示每个礼品里面sheet的数量(礼品种 ...