容器的数据持久化

在这里插入图片描述借用一张图了解docker数据持久化,都是摘抄的,就是为了学习用的。因为名词太多了。

docker数据持久化

bind mount、volume、tmpfs mount
镜像存储哈希位置
[root@docker01 sha256]# pwd
/var/lib/docker/image/overlay2/imagedb/content/sha256

Docker提供的默认的存储类型:storage:driver:overlay2.xfs
[root@docker01 ~]# docker run -it --name test -P --rm httpd /bin/bash
–rm:自动删除容器(退出容器后)

bind mount

[root@docker01 htdocs]# docker inspect t1
"Mounts": [
            {
   
                "Type": "bind",
                "Source": "/root/htdocs",
                "Destination": "/usr/local/apache2/htdocs",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],

将宿主机中的文件、目录mount到容器上。其上的数据可以被宿主机读写,可以被mount它的所有容器读写。

设置容器内对目录的操作权限:ro
docker run -itd --name t2 -p 80 -v /root/htdocs/:/usr/local/apache2/htdocs:ro httpd

-v 后边只有一个目录的话 指的是容器的目录;宿主机的目录在 /var/lib/docker/hash值的目录。

本质上是宿主机、container之间共享宿主机文件系统。这种持久化方法更导致container与宿主机的耦合过于紧密,所以不推荐使用。

tmpfs mount

tmpfs类型文件与普通文件的区别是只存在于宿主机内存中,不会持久化。

有特定的应用场景。比如docker可将用户名与密码等敏感数据保存在某个数据库中,当启动需要访问这些敏感数据的container或者service时,docker会在宿主机上创建一个tmpfs,然后将敏感数据从数据库读出写到tmpfs中,再将tmpfs mount到container中,安样能保证数据安全。当容器停止运行时,则相应的tmpfs也从系统中删除。

在创建容器时,bind mount与volume两种方式使用的选项相同,都是-v或者–volume,而实际上在语法上有明显的区别。tmpfs通过–tmpfs选项实现。总之在旧版本的docker中,这一块的语法有点混乱,从docker17.0.6开始,推荐使用新选项–mount,它要清晰的多。

volume

由docker负责创建、管理。用户可以显式的调用命令docker volume create创建volume,也可以通过container、service的启动隐式创建。

[
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值