Docker精华问答 | 多个 Docker 容器之间共享数据怎么办?

640?wx_fmt=png

在计算机技术日新月异的今天, Docker 在国内发展的如火如荼。特别是在一线互联网公司 Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,那么今天我们继续关于Docker 的精华问答。


640?wx_fmt=gif1

Q:容器磁盘可以限制配额么? 


A:对于 devicemapper, btrfs, zfs 来说,可以通过 --storage-opt size=100G 这种形式限制 rootfs 的大小。640?wx_fmt=png


640?wx_fmt=gif2

Q:容器内的数据该保存在镜像里还是物理机里? 


A:如果所谓数据是指运行时动态的数据,那么这部分数据文件不应该保存于镜像内。在运行时要保持容器基础文件不可变的特性,而变化部分使用挂载宿主目录,或者数据卷来解决。


640?wx_fmt=gif3

Q:看到总说要保持容器无状态,那什么是无状态? 


A:这里说到的有两个层面的无状态:

容器存储层的无状态 

这里提到的存储层是指用于存储镜像、容器各个层的存储,一般是Union FS,如 AUFS,或者是使用块设备的一些机制(如 snapshot )进行模拟,如 devicemapper。Union FS 这类存储系统,相当于是在现有存储上,再加一层或多层存储,这类存储的读写性能并不好。并且对于 CentOS 这类只能使用 devicemapper 的系统而言,存储层的读写还经常出 bug。因此,在 Docker 使用过程中,要避免存储层的读写。频繁读写的部分,应该使用卷。需要持久化的部分,可以使用命名卷进行持久化。由于命名卷的生存周期和容器不同,容器消亡重建,卷不会跟随消亡。所以容器可以随便删了重新run,而其挂载的卷则会保持之前的数据。

服务层面的无状态 

使用卷持久化容器状态,虽然从存储层的角度看,是无状态的,但是从服务层面看,这个服务是有状态的。从服务层面上说,也存在无状态服务。就是说服务本身不需要写入任何文件。比如前端 nginx,它不需要写入任何文件(日志走Docker日志驱动),中间的 php, node.js 等服务,可能也不需要本地存储,它们所需的数据都在 redis, mysql, mongodb 中了。这类服务,由于不需要卷,也不发生本地写操作,删除、重启、不保存自身状态,并不影响服务运行,它们都是无状态服务。这类服务由于不需要状态迁移,不需要分布式存储,因此它们的集群调度更方便。


640?wx_fmt=gif4

Q:卷和挂载目录有什么区别? 


A:卷 (Docker Volume) 是受控存储,是由 Docker 引擎进行管理维护的。因此使用卷,你可以不必处理 uid、SELinux 等各种权限问题,Docker 引擎在建立卷时会自动添加安全规则,以及根据挂载点调整权限。并且可以统一列表、添加、删除。另外,除了本地卷外,还支持网络卷、分布式卷。

而挂载目录那就没人管了,属于用户自行维护。就必须手动处理所有权限问题。特别是在 CentOS 上,很多人碰到 Permission Denied,就是因为没有使用卷,而是挂载目录,而且还对 SELinux 安全权限一无所知导致。


640?wx_fmt=gif5

Q:多个 Docker 容器之间共享数据怎么办?NFS ? 


A:如果是同一个宿主,那么可以绑定同一个数据卷,当然,程序上要处理好并发问题。

如果是不同宿主,则可以使用分布式数据卷驱动,让分布在不同宿主的容器都可以访问到的分布式存储的位置。如S3之类。


640?wx_fmt=png

小伙伴们冲鸭,后台留言区等着你!

关于Docker ,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~


福利

1、扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg

2、公众号后台回复:白皮书,获取IDC最新数据白皮书整理资料!


推荐阅读:

  • 技术头条

  • 2019年技术盘点微服务篇(二):青云直上云霄 | 程序员硬核评测

  • “入职 6 年,新人工资高我 2 千”:老板不加钱,不是嫌你老

  • 从沉迷游戏到沉迷编程,16 岁赚 20 万美元!

  • 南大和中大“合体”拯救手残党:基于GAN的PI-REC重构网络,“老婆”画作有救了 | 技术头条

  • 救救中国 996 程序员!GitHub 近 230,000 Star、Python 之父伸张正义!

  • 一个月修复20个漏洞获23675美元赏金, 原来是黑客队伍里出了无间道


640?wx_fmt=png真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssh连接远程linux环境

ssh连接远程linux环境 格式为: ssh 用户名远程ip地址例如: ssh root192.168.182.128

要闻君说:谷歌云重磅发布两大技术平台;以后可以打飞滴了?SAP重组动荡;微软宣布 Azure Functions 支持 Java...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 【4月10日 星期三】云の声音…

OpenGL ES EGL eglDestroyContext

目录 一. EGL 前言二. EGL 绘制流程简介三.eglDestroyContext 函数简介 四.eglDestroyContext 使用四.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 …

用Jenkins自动化搭建测试环境_jenkins基础搭建_入门试炼02

Jenkins基础: 本篇介绍Jenkins的安装、Jenkins中的常用插件的安装方法、Jenkins用户配置以及提醒邮件的配置。 接上一篇:使用Jenkins搭建自动化测试环境_环境准备_入门试炼01 https://blog.csdn.net/weixin_40816738/article/details/90280440 文章目录一…

OpenGL ES EGL eglQueryContext

目录 一. EGL 前言二. EGL 绘制流程简介三.eglQueryContext 函数简介 四.eglQueryContext 使用四.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基…

终于有人把5G和边缘计算的关系说清楚了 | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者: pala来源:边缘计算社区5G三大应用场景为:增强…

Jenkins_安装基础软件_入门试炼03

应用部署服务器准备: 本章对Linux系统简介、安装Java环境、安装并配置 Git、安装并配置 Maven、安装并配置 Tomcat、以及将部署服务器配置到Jenkins上。 一、Linux操作系统需要做的准备 1. 确定IP地址2. 确认登录用户名密码3. 查看/启动ssh服务4. 确认可以远程连接…

Jenkins_GithubFork程序_入门试炼04

部署应用介绍与前期准备: 本章讲解Fork github上的应用、部署应用下载、简略分析部署应用、 数据库准备、本地运行部署应用、将更新后的代码上传到github。 一、Github的介绍 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版…

用Jenkins自动化搭建测试环境_入门试炼05

Jenkins自动化部署任务开发: 本章简述自动化构建、部署过程、 创建Jenkins 任务,填写部署代码、实际运行部署任务。 一、部署过程介绍 简述自动化部署过程: 【开始】-【Git同步最新代码】-【maven打包编译】-【停止Tomcat】-【部署应用】-【…

OpenGL ES OpenGL WebGL EGL WGL 区别

目录 一.OpenGL二.OpenGL ES三.WebGL 四.EGL 和 WGL 五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学…

用Jenkins自动化搭建测试环境_入门试炼06

本章研发修改程序代码、 运行Jenkins环境发布任务、新环境上验证研发更改。 实战 1. 修改部署应用源代码2. commit修改内容,push代码到github3.执行Jenkins自动化部署任务4. 待任务完成后,打开浏览器查看部署结果 【从修改代码】-到【推送git库】-再到…

为什么给黑洞拍照需要这么长时间?

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者:中国科普博览;左文文(中科院上海天文台&#…

OpenGL ES freeglut 下载和使用

目录 一.freeglut 简介二.freeglut 下载五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >…

使用Jenkins搭建自动化测试环境_环境准备_入门试炼01

平台介绍: 前置准备环境:数据库MySQL,测试环境OS CentOS。 文章目录1. 平台介绍2. 自动化测试环境部署带来的幸福感:2.1. 程序自动部署,节约时间2.2. 环境一键部署,不怕研发频繁修改代码1. 平台介绍 2. 自动化测试环境…

与云原生及开源大神们的第二次亲密接触 | 全议程重磅发布

戳蓝字“CSDN云计算”关注我们哦!CNCF主办的中国最大规模开源与云原生大会有来自阿里巴巴、百度、华为、腾讯和雅虎日本的演讲嘉宾,加上Linux基金会的Open Source Summit。加利福尼亚州旧金山,2019年4月10日 —— 云原生计算基金会&#xff0…

OpenGL ES glew 下载和使用

目录 一.glew 简介二.glew 下载五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 特效 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> Op…

Storm精华问答 | 遇到这些错误日志该如何解决?

分布式的实时计算系统,能够可信任的处理大量的流式数据,就好比Hadoop对于批量数据进行的处理一样;通常来说,Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当…

企业实战(Jenkins+GitLab+SonarQube)_01_Jenkins下载

Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务&#x…

OpenGL ES glfw 下载和使用

目录 一.glfw 简介二.glfw 下载三.glfw 编译四.glfw 使用 1.OpenGL glfw glad 效果演示2.OpenGL glfw glad 《源码下载》 五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 &…

企业实战(Jenkins+GitLab+SonarQube)_04_Jenkins安装推荐插件

Jenkins如何安装推荐插件? 接上一篇: 企业实战03_Jenkins登录https://blog.csdn.net/weixin_40816738/article/details/90383694 文章目录一、首次插件安装1. 选择推荐的插件进行安装(首次建议使用)2. 安装推荐的插件下载中二、企业级推荐插件安装2.1.2.…