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

[经验分享] centos7下安装docker(19容器架构)

[复制链接]

尚未签到

发表于 2018-1-6 11:33:50 | 显示全部楼层 |阅读模式
  What,Why,How
  What:什么是容器?
  说起容器大家想到的是什么?
  集装箱(container),虚拟机,docker,k8s
  1.

  没毛病,因为容器与集装箱的英文都可以翻译成container
  2.虚拟机:AWS,Azure,VMware,华为,公有云,私有云等
  对容器有了解的人都会觉得容器和虚拟机很像,因为二者都是为应用提供封装和隔离。
  1.系统层面:容器本质上是单个应用程序,而虚拟机则需要更多的资源来运行整个操作系统,虚拟机上可以运行容器,其实我们也可以把容器看作成一个操作系统,毕竟容器也可以通过自己的设定运行命令,但这并不是容器的初衷
  2.应用层面:容器是单一的应用程序,虚拟机是多用途的应用程序。容器适合一个容器运行一种应用程序,比如ELK日志收集方案,ELK是由elasticsearch,logstash,kibana三个组件组成的,那么我们要运行三个容器,分别运行这三个组件;在虚拟机上部署ELK的话我们可能会将三个组件都部署在一台虚拟机上,如果是那种比较大型的方案的话,将三个组件分开,就需要三个虚拟机,在三个虚拟机上分别部署这三个组件
  3.构建方面

  如图所示:虚拟机的构建方法:物理服务器----->Host 操作系统----->Hypervisor层------>Guest操作系统----上层应用
  容器:                      物理服务器---->Host 操作系统------容器(上层应用)
  很明显,传统的虚拟化技术,比如VMware,KVM,Xen,目标是创建完整的虚拟机,为了运行应用,除了部署应用本身及其依赖(通常是几十MB),还得安装整个操作系统(几十GB);容器的话是所有容器共享一个Host OS,这使得容器在体积上比虚拟机小很多,所以容器部署和启动速度更快,开销更小,也更容易迁移
  3.

  一说容器,大家一般想到的都是docker。docker几乎是容器的代名词,其实容器不光是Docker,还有其他容器,比如:CoreOS的rkt
  4.K8S:kubernetes

  说起容器,我们可能也会想起K8S,K8S到底是什么呢?
  答案是:容器编排引擎
  什么是容器编排引擎呢?
  答案是:管理容器集群的工具,主要是用来动态的创建,迁移,销毁容器。所谓编排,通常包括管理,调度,集群定义和服务发现,通过容器编排引擎,容器被有机的组合成微服务应用,实现业务需求。
  除了K8s以外,还有docker swarm,mesos,这三个是目前比较主流的容器编排引擎
  k8s是由Google开发的,在容器编排的这场争夺中,一直以来比较强势,今年10月份docker宣布增加对k8s内置支持,而Mesosphere发布了DC/OS 1.10版,这个版本的特色在于让企业可以自己选择容器调度工具,开始支持K8s,容器编排的三足鼎立也就完成统一。
  容器到底是什么呢?
  容器是一种轻量级,可移植,自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。
  例如:开发人员在自己的笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机,物理服务器或公有云上运行。
  我现在研究的是容器主流技术---docker
  
  Docker是世界领先的软件平台集装箱
  why:为什么需要容器?
  为什么需要容器?容器到底解决了什么问题?
  简要的答案是:容器使软件具备了超强的可移植能力
  容器解决的问题:
  面临的挑战:传统的开发过程中,开发、测试、运维是三个独立运作的团队,团队之间沟通不畅,开发运维之间冲突时有发生,导致协作效率低下,产品交付延迟, 影响了企业的业务运行
  Docker技术将应用以集装箱的方式打包交付,使应用在不同的团队中共享,通过镜像的方式应用可以部署于任何环境。
  这样,开发人员:在写代码的时候就不需要考虑环境问题,
  运维人员:也不需要为不同的服务和平台配置环境,以容器方式交付的Docker技术支持不断地开发迭代,大大提升了产品开发和交付速度
  docker的特性
  
  HOW: 容器是如何工作的?
  docker架构:
  docker 的核心组件包括:
  1.Docker客户端---client
  2.docker服务器---docker daemon
  3.docker镜像---image
  4.registry
  5.docker容器---containers
  
  Docker采用的是CS架构,客户端发送请求到服务器,服务器负责构建,运行和分发容器。客户端和服务器可以运行在同一个Host主机上。
  docker客户端:
  docker客户端通过docker 命令像服务器发送请求,可以方便的在Host上构建和运行容器
  
  docker支持很多操作
  docker服务器:
  docker daemon是服务器的组件,以linux后台服务的方式运行
  
  docker daemon运行在docker host上,负责创建,运行,监控容器,构建,存储镜像
  默认配置下,docker daemon只能响应来自本地host客户端的请求。
  如果允许远程的客户端的请求,需要在配置文件中打开TCP监听
  1.vim /etc/systemd/system/docker.service.d/10-machine.conf

  添加-H tcp://0.0.0.0允许来自任意IP的客户端连接
  2.重启docker daemon

  3.服务器的IP为192.168.7.226,在远程客户端运行命令行加-H参数,即可与远程服务器连接
  例如:docker -H 192.168.7.226 info
  docker镜像
  可将docker镜像看作是容器的模板,通过它可以创建容器
  镜像有多种生成方法:
  1.可以从无到有的创建   dockerfile
  2.可以下载并使用别人创建好的现成的镜像  docker pull
  3.在现有的镜像的基础上创建新的镜像 dockerfile
  registry
  registry是存放镜像的仓库,分为私有和共有两种
  docker hub   (https://hub.docker.com/)是默认的registry,有docker公司维护,上面有数以万计的镜像,用户可以自由下载和使用。docker pull命令下载

运维网声明 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-432175-1-1.html 上篇帖子: 分布式技术追踪 2017年第四十四期 下篇帖子: Kolla:Docker+OpenStack
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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