Rancher容器⽬录持久化
最近⼀直在研究Rancher的持久化问题。
⽬前已到两种⽅式实现Rancher⾥的容器⽂件实现持久化⽅法。
⽅法⼀:
配置映射(只适⽤单个⽂件,不适⽤于⽬录)
这个算不上是真正的持久化,只是相当于配置⼀个键值,然后键值内容等于⽂件内容,从⽽使得容器重启后,该⽂件内容会⾃动读取该键值内容,从⽽实现保持配置⽂件内容
(1)添加配置映射
(2)输⼊映射名称(可随意取,但是注意部分特殊字符⽆法使⽤),选中命名空间(建议选择zabbix-agent容器所在命名空间),配置映射键(输⼊需要保持的⽂件名字即可),输⼊值(直接复制f的内容)。点击确认
(3)配置升级容器。到相应的容器,点击进⼊升级界⾯
下拉到数据卷,做如下配置
升级该容器,可以发现以下配置内容不会丢失了。当需要修改该⽂件时,直接在配置映射那⾥修改对应的值即可docker进入容器
⽅法⼆:
映射主机⽬录:(同时使⽤于⽂件及⽬录)
(1)指定该容器运⾏主机
因为这种⽅式,相当于将容器内部的⽂件映射⾄宿主机,映射之后,宿主机对应的⽂件和⽂件夹会⾃
动更新到容器内(PS:注意是,宿主机上的⽂件或⽂件夹覆盖容器内的)。如果不指定运⾏的主机,可能会导致,该容器升级之后,在另⼀台主机上运⾏,例如在
192.168.68.233上运⾏,那么如果233上对应的⽂件夹是空的,将会使得容器内部对应的⽂件夹也会被清空,甚⾄会直接导致容器⽆法起来,因为它的⽂件被233上的⽂件夹覆盖清空
对应容器点击进⼊升级,到主机调度部分,做以下配置
(2)将容器内的⽂件和⽂件夹复制到宿主机
以下命令在宿主机上执⾏
[root@localhost zhao]# docker cp ec66a6aa7b44:/f /zhao/f #将容器内部⽂件映射⾄宿主机本地,ec66a6aa7b44为容器id
invalid output path: directory "/zhao/etc" does not exist #建议都提前创建好对应⽬录
[root@localhost zhao]# mkdir -p /zhao/etc
[root@localhost zhao]# docker cp ec66a6aa7b44:/f /zhao/f
[root@localhost zhao]# ls
db etc test
[root@localhost zhao]# cd etc/
[root@localhost etc]# ls #可以看到宿主机本地也有了该容器内部的⽂件
(3)配置映射主机⽬录
对应容器点击进⼊升级,到数据卷部分,做以下配置。以将mongodb容器的配置⽂件映射到宿主机持久化为例。映射⽬录也是⼀样的⽅式
确认升级,即可完成⽂件或⽬录的映射持久化
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论