最近准备离职了,提前学习些新的知识,找工作的时候发现了很多公司招聘需求上都要求要懂docker和k8s,所以学习一下吧。
一、容器介绍
既然要学docker就首先要了解一下什么是容器:容器也是一种虚拟化的方案。但是容器与虚拟机不同,虚拟机是通过中间层将一台或多台虚拟系统独立运行在硬件之上。而容器是运行在操作系统内核之上的,也可以称容器为操作系统虚拟化。
二、容器的优缺点
2.1 优点
速度快:1、运行时性能可以获得极大的提升(官方经典案例给出的提升率时97%)。
2、管理操作快:启动、停止、重启、删除等等运维操作都是以毫秒或秒为单位计算的。
敏捷:像虚拟机一样敏捷,而且便宜,在裸机上部署操作极为简单像点击 “部署按钮”一样简单。
灵活:将应用和系统“容器化”,仅需要添加或减少即可,不需要添加额外的操作系统。
轻量:你会拥有足够的“操作系统”,在一台服务器上可以部署100~1000个Containers容器。
便宜:开源的,免费的,低成本的。由现代Linux内核支持并驱动。
ps:轻量级的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜。
生态系统:Google的趋势,docker or LXC
云支持:很多云服务商提供创建和管理Linux容器框架。
有关Docker性能方面的优势,还可参考此IBM工程师对性能提升的评测,从各个方面比VMs(OS系统级别虚拟化)都有非常大的提升。
2.2 缺点
也不能算是docker的缺点吧,只能算是关于docker的一些争论:
1、在超复杂的业务系统中,各个容器之间能否实现彻底的资源隔离,单一容器崩溃或资源占用率较高会不会影响到宿主机和其他容器正常运行,到目前还存在疑虑,但是还未发现出现过上述情况。
2、被私有公司所控制:docker是被一家私有公司控制的,公司都是以营利为目的的,比如目前只能通过黑匣子编出的docker二进制发行包,未来了也不可能完全免费开放。目前docker已经推出了面向公司的企业级业务咨询、支持和培训。
三、使用docker目的以及使用场景
3.1 使用docker的目的
1、同一主机运行多台容器的简单轻量级建模方式。
2、职责的逻辑分离:使研发人员的研发环境,与生产部署环境达到一致。
3、具有快速高效的开发生命周期:缩短开发到生产的生命周期,使开发、测试、生产环境达到高度一致,并且都已容器的方式进行交付,避免了额外调试部署的时间开销。
4、面向服务架构:鼓励单个容器之运行单一服务,这就形成了一种分布式模型。避免服务之间相互影响,在定位出现的问题时,也变得简单。
3.2 docker的使用场景
1、使用docker进行容器化开发、测试、部署。
2、创建隔离运行环境。
3、搭建测试环境。
4、构建多用户的平台即服务(Paas)基础设施。
5、提供软件即服务(SaaS)应用程序。
6、高性能、超大规模的宿主机部署
四、docker基本介绍
4.1 docker服务的基本组成
docker client 客户端
docker deamon 守护进程
docker image 镜像 容器的基石保存了启动容器的各种条件
ps:镜像其实是由多个层来组成的,引导层,文件系统层,软件层,这些都是属于只读文件系统,也就是说多个文件系统共同组成,镜像也能相互叠加在一起.有子镜像和父镜像。
层叠只读文件系统 联合加载(union mount)
rootfs 根文件系统
bootfs 引导文件系统
4.2 Docker Registry 仓库
公有 Docker Hub https://hub.docker.com/
私有 自己搭建(后续会出博客)
4.3 Docker依赖的linux内核特性
Namespaces 命名空间 :
编程语言
封装 代码隔离
操作系统
进程资源的隔离
进程,网络,文件系统....
文章来源地址https://www.toymoban.com/news/detail-846252.html
PID 进程隔离
NET 管理网络接口
IPC 管理跨进程通信的访问
MNT 管理挂载点
UTS (Unix Timesharing System)隔离内核和版本标示
Control groups(cgroups) 控制组:用来完成命名空间的隔离
资源限制(如限制mem,超出oom)
优先级设定(设定那个进程组使用更多资源)
资源计量(计算进程组使用了多少资源,尤其是在计费系统中)
资源控制(将进程组挂起,恢复)
4.4 docker容器的能力
文件系统隔离:每个文件都有自己的root文件系统。
进程隔离:每个容器都运行在自己的进程环境中。
网络隔离:容器间的虚拟网络接口和IP地址都是分开的。
资源隔离和分组:使用cgroups将cpu和内存之类的资源独立分配给每个docker容器。文章来源:https://www.toymoban.com/news/detail-846252.html
到了这里,关于docker学习笔记 一-----容器介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!