最近一直在研究Rancher的持久化问题。

目前已找到两种方式实现Rancher里的容器文件实现持久化方法。

方法一:

配置映射(只适用单个文件,不适用于目录)

这个算不上是真正的持久化,只是相当于配置一个键值,然后键值内容等于文件内容,从而使得容器重启后,该文件内容会自动读取该键值内容,从而实现保持配置文件内容

(1)添加配置映射

(2)输入映射名称(可随意取,但是注意部分特殊字符无法使用),选中命名空间(建议选择zabbix-agent容器所在命名空间),配置映射键(输入需要保持的文件名字即可),输入值(直接复制zabbix_agentd.conf的内容)。点击确认

(3)配置升级容器。找到相应的容器,点击进入升级界面

下拉找到数据卷,做如下配置

升级该容器,可以发现以下配置内容不会丢失了。当需要修改该文件时,直接在配置映射那里修改对应的值即可

方法二:

映射主机目录:(同时使用于文件及目录)

(1)指定该容器运行主机

因为这种方式,相当于将容器内部的文件映射至宿主机,映射之后,宿主机对应的文件和文件夹会自动更新到容器内(PS:注意是,宿主机上的文件或文件夹覆盖容器内的)。如果不指定运行的主机,可能会导致,该容器升级之后,在另一台主机上运行,例如在192.168.68.233上运行,那么如果233上对应的文件夹是空的,将会使得容器内部对应的文件夹也会被清空,甚至会直接导致容器无法起来,因为它的文件被233上的文件夹覆盖清空

对应容器点击进入升级,找到主机调度部分,做以下配置

(2)将容器内的文件和文件夹复制到宿主机

以下命令在宿主机上执行

[root@localhost zhao]# docker cp ec66a6aa7b44:/etc/mongod.conf /zhao/etc/mongod.conf  #将容器内部文件映射至宿主机本地,ec66a6aa7b44为容器id
invalid output path: directory "/zhao/etc" does not exist      #建议都提前创建好对应目录
[root@localhost zhao]# mkdir -p /zhao/etc
[root@localhost zhao]# docker cp ec66a6aa7b44:/etc/mongod.conf /zhao/etc/mongod.conf
[root@localhost zhao]# ls
db etc test
[root@localhost zhao]# cd etc/
[root@localhost etc]# ls      #可以看到宿主机本地也有了该容器内部的文件
mongod.conf

(3)配置映射主机目录

对应容器点击进入升级,找到数据卷部分,做以下配置。以将mongodb容器的配置文件映射到宿主机持久化为例。映射目录也是一样的方式

确认升级,即可完成文件或目录的映射持久化

Rancher容器目录持久化的更多相关文章

  1. Rancher 容器管理平台-免费视频培训-链接及内容-第三季

    Rancher 容器管理平台-免费视频培训-链接及内容 第三季 第5期-2018年05月10日-持续集成的容器化实践回放网址:http://www.itdks.com/liveevent/detail ...

  2. Docker 容器数据 持久化(系统学习Docker05)

    写在前面 本来是可以将数据存储在 容器内部 的.但是存在容器内部,一旦容器被删除掉或者容器毁坏(我亲身经历的痛,当时我们的大数据平台就是运行在docker容器内,有次停电后,不管怎样容器都起不来.以前 ...

  3. Docker深入浅出系列 | 容器数据持久化

    Docker深入浅出系列 | 容器数据持久化 Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会 ...

  4. docker容器的持久化存储:Volume

    独立于docker容器的持久化存储: 法(1):自动将服务器文件夹挂载到容器内部文件夹/usr/share/nginx/html,这样只修改服务器文件夹下的内容即可对应修改容器内部文件夹的内容 将服务 ...

  5. [经验交流] k8s mount 文件到容器目录

    docker 的 volume 可以 mount 单个文件(比如单个配置文件)到容器目录.同时保留原目录的内容.放到 k8s 中,结果却变成了这样:k8s 的 volume 把文件mount 到容器目 ...

  6. docker 容器目录挂载 | 进出容器

    docker run --name wnginx -d -p 9001:80 -v /home/www:/usr/share/nginx/html nginx --name   别名 -d      ...

  7. Docker自学纪实(三)Docker容器数据持久化

    谈起数据卷 我一直觉得是个枯燥无聊的话题 但是通过今天的实操和阅读 我发现其实并不是 其实就像走夜路 没有光明,第一次都是恐惧 但是如果走的次数多了 或者静下心来去克制恐惧 也许就会驾轻就熟或者等到黎 ...

  8. 安装Rancher容器化管理平台

    卸载已有的避免冲突 yum remove docker  docker-common docker-selinux docker-engine   安装需要的软件包,yum-util 提供yum-co ...

  9. 4.云原生之Docker容器数据持久化介绍与实践

    转载自:https://www.bilibili.com/read/cv15182308/?from=readlist #### 创建一个web容器并创建一个数据卷挂载到容器的/webapp目录下(默 ...

随机推荐

  1. 201671010438王奕晗实验十四 团队项目评审&课程学习总结

    个人学习总结博客 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 作业学习目标 完成个人软件心得总结 一.结合本学期课程学习内容,对比<实验一 软件工 ...

  2. 项目Alpha冲刺(团队) -- 总结及汇总

    项目Alpha冲刺(团队) --总结 1.团队信息 团队名 :男上加男 成员信息 : 队员学号 队员姓名 个人博客地址 备注 221600427 Alicesft https://www.cnblog ...

  3. 表之间的数据匹配(Oracle)

    来源表1: 来源表2: 生成一个交叉表: sql: select t.course_name,max(case when t.month='200706' then 'o' else '*' end) ...

  4. dependencies与devDependencies的区别----npm install

    npm install在安装node模块时,有两种命令参数可以把它们的信息写入package.json文件. –save –save-dev 那二者的区别在哪里呢? –save会把依赖包名称添加到pa ...

  5. 选择 IDE 的目的

    选择 IDE 的目的 这个不消多说了, 在我看来,最重要的无非三点: 自动补全 自定义模板(俗称 custom snippets) IDE 内 debug. 代码静态检查(错误提示,这里主要包括 es ...

  6. (7)树莓派读物USB摄像头

    https://blog.csdn.net/qq_42403190/article/details/90453305 创建文件 camera.py 简单读取 #!/usr/bin/env python ...

  7. Substrings SPOJ - NSUBSTR (后缀自动机)

    Substrings \[ Time Limit: 100ms\quad Memory Limit: 1572864 kB \] 题意 给出一个长度为 \(250000\) 的字符串,求出所有 \(x ...

  8. PHP字符串比较函数详解

    在PHP中,对于字符串之间的比较有很多种方法,第一种是使用 strcmp()函数和 strcasecmp()函数按照字节进行比较,第二种是使用 strnatcmp()函数按照自然排序法进行比较,第三种 ...

  9. js-Cannot read property 'innerHTML' of null

    原因:1.$('#xxx') 或$('.xxx')不存在 2.$('#xxx')或$('.xxx')的值为空

  10. 编译错误: file not found with angled include use quotes instead #include <lualib.h> 和 #include "lualib.h"

    http://stackoverflow.com/questions/17465902/use-of-external-c-headers-in-objective-c 问题: 7down votef ...