Docker精华问答 | 数据库为什么不适合放在 Docker 中运行?

戳蓝字“CSDN云计算”关注我们哦!


640?wx_fmt=png

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。今天就让我们一起看看关于Docker 的精华问答吧。


640?wx_fmt=gif1

Q:为什么说数据库不适合放在 Docker 容器里运行? 


A:不为什么,因为这个说法不对,大部分认为数据库必须放到容器外运行的人根本不知道 Docker Volume 为何物。在早年 Docker 没有 Docker Volume 的时候,其数据持久化是一个问题,但是这已经很多年过去了。现在有 Docker Volume 解决持久化问题,从本地目录绑定、受控存储空间、块设备、网络存储到分布式存储,Docker Volume 都支持,不存在数据读写类的服务不适于运行于容器内的说法。Docker 不是虚拟机,使用数据卷是直接向宿主写入文件,不存在性能损耗。而且卷的生存周期独立于容器,容器消亡卷不消亡,重新运行容器可以挂载指定命名卷,数据依然存在,也不存在无法持久化的问题。


640?wx_fmt=gif2

Q:如何列出容器和所使用的卷的关系? 


A:要感谢强大的 Go Template,可以使用下面的命令来显示:640?wx_fmt=png


640?wx_fmt=gif3

Q:docker pull 下来的镜像文件都在哪? 


A:初学 Docker 要反复告诫自己,Docker 不是虚拟机。Docker不是虚拟机,Docker 镜像也不是虚拟机的 ISO 文件。Docker 的镜像是分层存储,每一个镜像都是由很多层,很多个文件组成。而不同的镜像是共享相同的层的,所以这是一个树形结构,不存在具体哪个文件是 pull 下来的镜像的问题。

具体镜像保存位置取决于系统,一般Linux系统下,在 /var/lib/docker 里。对于使用 Union FS 的系统(Ubuntu),如 aufs, overlay2 等,可以直接在 /var/lib/docker/{aufs,overlay2} 下看到找到各个镜像的层、容器的层,以及其中的内容。但是,对于CentOS这类没有Union FS的系统,会使用如devicemapper这类东西的一些特殊功能(如snapshot)模拟,镜像会存储于块设备里,因此无法看到具体每层信息以及每层里面的内容。

需要注意的是,默认情况下,CentOS/RHEL 使用 lvm-loop,也就是本地稀疏文件模拟块设备,这个文件会位于 /var/lib/docker/devicemapper/devicemapper/data 的位置。这是非常不推荐的,如果发现这个文件很大,那就说明你在用 devicemapper + loop 的方式,不要这么做,去参照官方文档,换 direct-lvm,也就是分配真正的块设备给 devicemapper去用。


640?wx_fmt=gif4

Q:docker images 命令显示的镜像占了好大的空间,怎么办?每次都是下载这么大的镜像?

 

A:这个显示的大小是计算后的大小,要知道 docker image 是分层存储的,在1.10之前,不同镜像无法共享同一层,所以基本上确实是下载大小。但是从1.10之后,已有的层(通过SHA256来判断),不需要再下载。只需要下载变化的层。所以实际下载大小比这个数值要小。而且本地硬盘空间占用,也比docker images列出来的东西加起来小很多,很多重复的部分共享了。


640?wx_fmt=gif5

Q:为什么 Docker Hub 的镜像尺寸和 docker images 不一致? 


A:Docker Hub上显示的是经过 gzip 压缩后的镜像大小,这个大小也是你将下载的镜像大小,一般来说也是 Docker Hub 用户最关心的大小。而 docker images 显示的是pull下来并解压缩后的大小,因为使用docker images的时候更关心的是本地磁盘空间占用的大小,所以这里显示的是未压缩镜像的大小。


640?wx_fmt=png

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

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

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


福利

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


640?wx_fmt=jpeg

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


推荐阅读:


640?wx_fmt=png 真香,朕在看了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值