《循序渐进学docker》读书笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《循序渐进学docker》读书笔记相关的知识,希望对你有一定的参考价值。
1~6章杂乱笔记
Docker是基于Linux3.8以上内核,在aufs分层文件系统下构建的。
Puppet是集中的配置管理系统,把文件、用户、Cron任务、软件包、系统服务等抽象为资源,并通过自有的语言描述资源间的依赖关系,集中管理各类资源的安装配置,主要适用于需要大批量部署相同服务的应用场景。
OpenStack是开源的云计算管理平台项目,可以帮助企业内部实现类似于Amazon EC2的云基础架构服务,灵活,但是组件繁多,构建复杂,比较适合大中型企业。
Java:run once,run anywhere;
Docker:build once,run anywhere,configure once,run anything。
C/S架构,用户态程序,通过接口与内核交互;需要用到Linux的cgroups、namespace等特性;
规定层次是有优先级的,上层和下层有相同的文件和配置时,上层覆盖下层,数据以上层的数据为准;
以OpenVZ、VServer、LXC为代表的容器类虚拟机,是一种内核虚拟化技术,与宿主机运行在相同的linux内核,不需要指令级模拟,性能消耗非常小,是非常轻量级的虚拟化容器。
Docker就是使用LXC(后来有推出libcontainer)让虚拟机变得轻量化。
镜像是以分层的、可以被LXC/libcontainer理解的文件存储格式。
Windows安装docker需要确保CPU支持虚拟化,并且是打开的。64位。
CoreOS是为docker而生的操作系统,对docker支持良好,还集成etcd、fleet等,方便对docker集中管理。Flynn、Deis基于CoreOS来做的。CoreOS自家的类容器,rocket。
截止到docker v1.10.1版本,docker一共支持51条命令,操作对象主要分为四类:
- 针对守护进程的系统资源设置和全局信息的获取:docker info/deamon
- 针对仓库的查询,下载:docker search、pull
- 针对镜像的查询,创建,删除:docker images、build
- 针对容器的查询,创建,开启,停止:docker ps、run
Docker指令除了单条使用,还支持赋值,解析变量,嵌套。
Docker位于操作系统和虚拟容器(lxc或者libcontainer)之上,通过调用cgroups、namespace和libcontainer等系统层面的接口来完成资源分配和相互隔离。
docker logs -f
实时打印最新的日志;docker status
命令实时查看容器所占用的系统资源:cpu,内存,网络和磁盘开销。
Docker容器编排工具——docker compose,模版文件中的–link参数对启动的优先级自动排序;虽然docker compose可以判断容器间的依赖并生成正确的启动顺序;但是,假如容器A的进程a依赖于容器B的进程b,但是进程b的启动需要长耗时,此时需要对进程a增加一些判断等待和重试机制。
容器创建后,不依赖于镜像,可删除;镜像所占的磁盘空间远远小于所有镜像之和,分层机制;镜像通过联合文件系统(union filesystem)将各层文件系统叠加在一起,用户所见貌似是一个完整的文件系统;通过docker history查询镜像分了多少层,每一层的具体操作,–tree命令参数打印查询完整的内容;分层的镜像的两个特性:已有的分层只能读不能写;上层的镜像的优先级高于底层镜像;联合文件系统(aufs)最多允许128层;
容器container是在镜像的基础之上创建的,是最上层的可写层,可以通过docker commit来保存修改为新的镜像,不推荐;推荐Dockerfile可维护的方式来构建任何新的的镜像
Makefile描述整个工程所有文件的编译顺序和规则;有书写格式、关键字、函数;工程中的哪些源文件需要编译以及如何编译,需要创建哪些库文件以及如何创建这些库文件,最后如何生成我们想要的可执行文库。
Entrypoint是容器启动后才执行的命令;
使用debootstrap工具,可以定制自己需要的最小化的Linux基础镜像。
第七章
待续,暂未找到电子版PDF。
以上是关于《循序渐进学docker》读书笔记的主要内容,如果未能解决你的问题,请参考以下文章
《循序渐进DB2.DBA系统管理运维与应用案例》(牛新庄著)读书笔记2
《循序渐进DB2.DBA系统管理运维与应用案例》(牛新庄著)读书笔记1
《循序渐进DB2.DBA系统管理运维与应用案例》(牛新庄著)读书笔记5 DB2多副本安装