centos7下安装docker(19容器架构)
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命令下载
centos7下安装docker(19容器架构)的更多相关文章
- docker(一) Centos7下安装docker
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...
- CentOS7下安装docker(Docker系列1)
CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...
- centos7下安装docker与镜像加速
1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...
- centos7 下安装docker报错:You could try using...
搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...
- centos7下安装docker(13.4容器volume总结)
最近我们学习了docker 存储,首先docker存储有两种:storage driver和data volume. storage driver是由镜像层和容器层组成的,可以通过docker ins ...
- centos7下安装docker(12.4容器如何与外部进行通信)
1.容器如何访问外部 前面我们做了很多试验:只要host能连外网,使用默认bridge(docker0)创建得容器就能访问外网,那么容器是怎样访问外网的呢? 注:这里的外网不仅是internet,包括 ...
- centos7下安装docker(11容器操作总结)
这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...
- centos7下安装docker(10容器底层--cgroup和namespace)
cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup ...
- centos7下安装docker(8.3容器的常用操作)
yu我们之前已经学习了如何运行容器docker run,也学习了如何进入容器docker attach和docker exec,下面我们来学习容器的其他操作: stop/start/restart 1 ...
随机推荐
- SpringBoot史前简述
背景 大约20年前,程序员们使用“企业级Java Bean”(EJB)开发企业应用,需要配置复杂的XML. 在二十世纪初期,新兴Java技术——Spring,横空出世.使用极简XML和POJO(普通J ...
- Dom对象的研究
1.逻辑运算 || && ! 1||2 5&&4 !0 || 遇到第一个为true 的数字就终止并返回 && 遇到第一个为false ...
- JS apply的巧妙用法以及扩展到Object.defineProperty的使用
Math.max 实现得到数组中最大的一项 var array = [1,2,3,4,5]; var max = Math.max.apply(null, array); console.log(ma ...
- HDU4609 3-idiots(生成函数)
题意 链接 Sol 这个题就很休闲了.. 首先这是个数数题,我们要求的是\(\frac{\sum{[a_i + a_j > a_k]}}{C_n^3}\) 其中\(a\)按从小到大排序, \(i ...
- docker研究-1
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare metal. ...
- ScrollView嵌套ListView、GridView,进入页面显示的位置并不是在最顶部,而是在中间部分问题
在Android项目的开发中,经常会遇到一些布局,可能需要在ScrollView中嵌套ListView或.GridView来实现, 是在使用的过程总又遇到了一个新的问题,就是如果在ScrollView ...
- 小程序实践(一):主页tab选项实现
官方文档 效果图: 实现底部Tab选项,只需要在项目根目录下的app.json下修改 如图: ----------------------------------------------------- ...
- Android 源码编译之旅
目录 前言 背景 安装软件 正文 Mac 分区 移动硬盘分区 Repo 下载源码 编译 源码导入 Android Studio 查看 碰到的问题 Could not find a supported ...
- (后端)SpringMVC提交数组时不能超过256个值(转)
项目遇到了这个错误,spring mvc 竟然还有这个漏洞. org.springframework.beans.InvalidPropertyException: Invalid property ...
- [Python][小知识][NO.3] Python 使用系统默认浏览器打开指定URL的网址
1.前言 一般用到的地方: GUI交互界面下,单击某个按钮实现打开指定网址. 某帮助菜单项目,需要跳转网页显示时. O.O 某XX程序,需要植入网页弹窗广告时... 2.方法 调用 webbrowse ...