设为首页 收藏本站
查看: 1122|回复: 0

[经验分享] Docker容器基础

[复制链接]

尚未签到

发表于 2019-2-20 11:13:48 | 显示全部楼层 |阅读模式
前言

    统称来说,容器是一种工具,指的是可以装下其它物品的工具,以方便人类归纳放置物品、存储和异地运输,具体来说比如人类使用的衣柜、行李箱、背包等可以成为容器,但今天我们所说的容器是一种IT技术。
容器技术是虚拟化、云计算、大数据之后的一门新兴的并且是炙手可热的新技术,容器技术提高了硬件资源利用率、方便了企业的业务快速横向扩容、实现了业务宕机自愈功能,因此未来数年会是一个容器愈发流行的时代,这是一个对于IT行业来说非常有影响和价值的技术,而对于IT行业的从业者来说,熟练掌握容器技术无疑是一个很有前景的的行业工作机会。

Docker简介

1、什么是Docker:
首先Docker是一个在2013年开源的应用程序并且是一个基于go语言编写是一个开源的pass服务(Platform as a Service,平台即服务的缩写),go语言是由google开发,docker公司最早叫dotCloud后由于Docker开源后大受欢迎就将公司改名为 Docker Inc,总部位于美国加州的旧金山,Docker是基于linux 内核实现,Docker最早采用LXC技术(LinuX Container的简写,LXC是Linux 原生支持的容器技术,可以提供轻量级的虚拟化,可以说 docker 就是基于 LXC 发展起来的,提供 LXC 的高级封装,发展标准的配置方法),而虚拟化技术KVM(Kernel-based Virtual Machine) 基于模块实现,Docker后改为自己研发并开源的runc技术运行容器。
Docker 相比虚拟机的交付速度更快,资源消耗更低,Docker 采用客户端/服务端架构,使用远程API来管理和创建Docker容器,其可以轻松的创建一个轻量级的、可移植的、自给自足的容器,docker 的三大理念是build(构建)、ship(运输)、 run(运行),Docker遵从aoache 2.0协议,并通过(namespace及cgroup等)来提供容器的资源隔离与安全保障等,所以Docke容器在运行时不需要类似虚拟机(空运行的虚拟机占用物理机6-8%性能)的额外资源开销,因此可以大幅提高资源利用率,总而言之Docker是一种用了新颖方式实现的轻量级虚拟机.类似于VM但是在原理和应用上和VM的差别还是很大的,并且docker的专业叫法是应用容器(Application Container)。
2、docker的组成:
2.1、Docker 客户端(Client):客户端使用docker 命令或其他工具调用docker API。
2.2、Docker 服务端(Server):Docker守护进程,运行docker容器。
2.3、Docker 镜像(Images):镜像可以理解为创建实例使用的模板。
2.4、Docker 容器(Container): 容器是从镜像生成对外提供服务的一个或一组服务。
2.5、Docker 仓库(Registry): 保存镜像的仓库,类似于git或svn这样的版本控制系统,官方仓库: https://hub.docker.com/
2.6、Docker 主机(Host):一个物理机或虚拟机,用于运行Docker服务进程和容器
3、Docker在开发和运维中的优势:
3.1、更快速的交付和部署
3.2、更高的资源利用
3.3、更轻松的迁移和扩展
3.4、更简单的更新管理
4、Docker与虚拟机比较
4.1、Docker容器很快,启动和停止可以在秒级实现,这相比传统的虚拟机方式(数分钟)要快很多
4.2、Docker容器对系统资源需求很少,一台主机上可以同时运行数千个Docker容器。
4.3、Docker通过类似Git设计理念的操作来方便用户获取、分发和更新应用镜像,存储复用,增量更新
4.4、Docker通过Dockerfile支持灵活的自动化创建和部署机制,以提高工作效率,并标准化流程。
4.5、Docker容器除了运行其中的应用外,基本不消耗额外的系统资源,在保证应用性能的同时,尽量减少系统开销。传统虚拟机方式运行N个不同的应用就要启动N个虚拟机(每个虚拟机单独分配独占的内存、磁盘等资源),而Docker只需要启动N个隔离的“很薄的”容器,并将应用放进容器内即可。

DSC0000.png


核心概念

docker的三大核心概念:
镜像
容器
仓库
只有理解了这三个核心概念,才能顺利地理解docker容器的整个生命周期。
docker大部分的操作都围绕着它的三大核心概念:镜像、容器、仓库。准确把握这三大核心概念对掌握docker技术尤为重要。
docker镜像:
docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模版。
例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache应用程序或者其他需要的软件。可以把它称为一个Apache镜像。
镜像是创建docker容器的基础。
通过版本管理和增量的文件系统,docker提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。
docker容器:
docker容器类似于一个轻量级的沙箱,docker利用容器来运行和隔离应用。
容器是从镜像创建的应用运行实例,他可以启动、开始、停止、删除、而这些容器都是彼此相互隔离、互不可见的。
可以把容器看作一个简易版的Linux系统环境(包括root用户权限、进程空间、用户空间和网络空间等)以及运行在其中的应用程序打包而成的盒子
注意:镜像自身是只读的,容器镜像启动的时候,会在镜像的最上层创建一个可写层。
docker仓库:
docker仓库类似于代码仓库,是docker集中存放镜像文件的场所。
根据所存储的镜像公开分享与否,docker仓库可以分为两类:
公开仓库
私有仓库
docker引擎:
docker引擎是使用docker容器的核心组件,可以在主流的操作系统和云平台上使用。包括Linux操作系统(如Ubuntu、Debian、centos、Redhat等),macOS和Windows操作系统,以及IBM、亚马逊、微软等知名云平台。
目前docker支持docker引擎、docker hub、docker cloud等多种服务。
docker引擎:
包括支持在桌面系统或云平台安装docker,以及为企业提供简单安全弹性的容器集群编排和管理;
dockerhub:
官方提供的云托管服务,可以提供共有或者私有的镜像仓库
dockercloud:
官方提供的容器云服务,可以完成容器的部署与管理,可以完整地支持容器化项目,还有 CI、CD 功能。
docker引擎目前分为两个版本:
社区版本(Community Edition, CE)
企业版本(Enterprise Edition, EE)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-674826-1-1.html 上篇帖子: Docker Volume 下篇帖子: Dokcer入门及其Docker file的制作指令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表