美文网首页docker程序员工具癖
docker,你真正懂了吗?

docker,你真正懂了吗?

作者: robot_test_boy | 来源:发表于2018-01-19 22:47 被阅读1276次

docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,基于go语言并遵循Apache2.0协议,源码托管于GitHub

docker解决什么问题

docker解决什么问题?容器是怎么运行的?和虚机有什么不同?老外眼里的container是集装箱不是中国人说的容器。docker有哪些优缺点?

容器和虚机的不同

虚机有自己的OS操作系统,独立于主机OS,宿主型hypervisor将虚机当作一个个进程运行在主机上,虚机内核可以和主机不同。

宿主型hypervisor包括开源OpenStack的kvm,VMware的vSphere,微软的Hyper-V、思杰Citrix的XenServer 、IBM的PowerVM、Red Hat的Enterprise Virtulization、华为的FusionSphere,中兴的TECS KVM。

裸机型hypervisor本文先不介绍。

虚机运行在宿主型hypervisor

容器之间共享主机的OS操作系统,容器引擎将容器当作一个个进程运行在主机上,虚机内核是使用的主机内核,因此依赖于主机内核版本,且不便于升级。

容器引擎包括docker,CoreOS的rkt和Mesos的Mesos containerizer。当然主流还是docker。

容器运行在docker上

容器运行在host操作系统的用户空间,与操作系统其他进程隔离。在容器启动时不需要启动内核空间,所以启动时比虚机较快,开销少,易迁移。

对比完虚机和容器的不同,我们还是回到主咖docker来介绍。

Docker 将集装箱思想(分类管理货物,不受运输时外界带来的损坏)运用到软件打包(容器特性build onece can run anywhere意味着环境隔离,运行一次后打包可在其他环境上运行)上,为代码提供了一个基于容器的标准化运输系统。

docker并不是全能的,局限在于无法在33位的Windows/Linux环境下使用,基于Linux 64位的。cgroup的CPU和CPUset提供的CPU功能相比KVM等虚拟化方案难以度量(dotCloud主要按照内存收费),docker对磁盘管理能力有限,container随着用户进程的停止销毁导致用户log不便收集。docker网络管理简单,主要是基于namespace隔离。

docker架构篇

docker架构篇Docker 采用的是 Client/Server 架构,包含client,docker daemon服务端,image镜像,registry软件仓库,docker container共5部分。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。

docker架构
docker镜像篇

docker如何构建镜像什么是base镜像?Linux系统包含内核空间kernel和用户空间rootfs两部分,容器只使用各自的rootfs但共用host的kernel,这就产生镜像结构分成,但为何产生镜像结构分层如何查查看镜像分层结构

Linux 操作系统组成

所有容器都共用 host 的 kernel,在容器中没办法对 kernel 升级。

容器共用host的内核

base 镜像有两层含义:不依赖其他镜像,从 scratch 构建。其他镜像可以之为基础进行扩展。base镜像最小到10M,是不是很神奇,你见过这么精简镜像嘛?

新镜像从 base 镜像一层一层叠加生成的,每安装一个软件,就在现有镜像的基础上增加一层。如果多个镜像从相同的 base 镜像构建而来,那么 Docker Host 只需在磁盘上保存一份 base 镜像,同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了,而且镜像的每一层都可以被共享。

镜像分层结构

如果多个容器共享一份基础镜像,当某个容器修改了基础镜像的内容,比如 /etc 下的文件,这时其他容器的 /etc 是否也会被修改?

这当然不行,也就产生了可写的容器层。当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。

可写的容器层

镜像的分层结构即镜像制作过程中的操作,通过docker history 镜像名称即可。

了解完理论,该实践了!

It is docker time!

下期预告“docker实践篇“!

docker hello world!-已新鲜出炉了!

docker can run anywhere in the pod!

docker image!

docker storage!

docker cpu and memory!

docker network!

相关文章

  • docker,你真正懂了吗?

    docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,基于go语言并遵循Apache2....

  • 你真正懂付费了吗?

    复盘《付费就是捡便宜》习得与反思: 前面我们已经习得,出售时间之前我们需要牢记的三条铁律(成长、价值和耐心)和我们...

  • 你真正懂生命生活了吗?

    8天,给你和你的爱人一份礼物,一段去探索,疗愈,打开和转化你们关系的有品质的时光。去发现你关于神圣的性,爱和狂喜的...

  • 理解什么是财务自由

    每个人当接触或知晓财务自由后就很向望财务自由,我也是.但是你真正的了解或懂什么是财务自由了吗? 经...

  • 女生的神逻辑

    女:你根本就不懂我 男:你不说我怎么懂你啊? 女:真正的懂是不需要说的 男:你说了我不就懂了吗 女:说出来有什么意...

  • 【我不信】

    你知道了吗 不知道又怎会懂呢 你还说你相信 -

  • 花又开

    懂,仅一眼 心头小鹿 蜂蝶,递你了吗

  • “你不懂我”

    女:“你不懂我” 男:“你说了我不就懂了。” 女:“我不说你也应该懂” 男:“你不说我怎么懂。” 女:“真正懂不需...

  • 你懂“故事“了吗?

    这几天偶然有人与我谈讨故事一词,那么什么是故事? 一个好的故事如同一个聪明健康的人,不但有时间...

  • 你懂商业了吗

    商业史、把握发展的规律、胜者为荣,败者凄凉的时代 1.0时代产品为王赚差价 2.0时代互联网平台信息便捷透明产品过...

网友评论

    本文标题:docker,你真正懂了吗?

    本文链接:https://www.haomeiwen.com/subject/bzyxoxtx.html