docker相关概念记录

Docker是直接运行在当前操作系统(Linux)之上,而不是运行在虚拟机中,但是也实现了虚拟机技术的资源隔离,性能远高于虚拟机技术。Docker支持将软件编译成一个镜像(Image),在这个镜像里做好对软件的各种配置,然后发布这个镜像,使用者可以运行这个镜像,运行的镜像称之为容器(Container),容器的启动是非常快的,一般都是以秒为单位。目前主流的软件及非主流的大部分软件都有人将其封装成Docker镜像,我们只需要下载Docker镜像,然后运行镜像就可以快速获得已做好配置可运行的软件。Docker不是为开发测试方便而提供的小工具,而是可以用于实际生产环境的一种极好的部署方式。

因为Docker的运行原理是基于Linux的,所以Docker只能在linux下运行。也就是说真正的生产环境下,基于Docker的部署只能在Linux上,但是我们在开发环境测试的时候,Docker是可以在Windows下运行的,运行的原理是启动一个VirtualBox虚拟机,然后在此虚拟机里运行Docker。

Docker&Vm

 

Docker引擎替代了Hyperv,没有Gest OS(虚拟机),应用是放到容器里,直接运行在宿主机的 OS上。这样做的好处是,各容器间虽然隔离,但共享系统资源和公用库,剥离了Gest OS这层,系统资源利用率更高。用户需要的是高效运行环境而非OS, GuestOS既浪费资源又难于管理,轻量级的 Container更加灵活和快速。

因为Docker容器的灵活性,在程序的开发、测试、发布,整个流程能保证环境的一致性,并大大减少工作量和时间。 

 

开发者:Build once, Run everywhere 

 

运维者:Configure once, Run everything 

相关概念

 

Kubernetes[kju:be'tes],google 容器编排工具,基于 Docker 构建一个容器的调度服务。该系统可以自动在 一个容器集群中选择一个工作容器供使用
Linux Containers(LXC)容器可以提供轻量级的虚拟化,是基于应用的虚拟化,所以每个虚拟机仅是主机系统的一个进程,不需要完全模拟硬件,资源占用非常少。
Cgroups---control groups是Linux内核提供的一种可以限制、记录、隔离进程组( process groups)所使用的物理资源(如:CPU, Memory, IO等)的机制。
docker是lxc的管理器,lxc是cgroup的管理工具,cgroup是namespace的用户空间的管理接口。namespace是linux内核在task_struct中对进程组管理的基础机制 

 

名词解释

在接触docker的过程中经常遇到以下三个缩写:

CaaS容器即服务(Containers as a Service)

IaaS基础设施即服务(Infrastructure as a Service)

PaaS平台即服务(Platform-as-a-Service),它是这样一个云计算:平台提供了云存储、数据库、网络、负载均衡、自动扩展等功能,你只需将你的程序交给云计算平台就可以了。

SaaS软件即服务(Software-as-a-Service)

三者有什么区别?

开发一个网站,传统上会先去买服务器,安装服务器软件,然后编写网站程序;

自从有了云计算,如果采用IaaS服务,那么你就不用自己买服务器了,随便在哪家购买虚拟机,但是还是需要自己装服务器软件;

更进一步,软件也不想写,直接使用别人开发好的程序比如在线网点的服务,那么从服务器的部署,扩容,软件升级安装等都不需要我们操心,此为SaaS。

 

服务编排

编排的重点是服务可以接服务,因此往往上一个服务的输出将成为下一个服务的输入信息,上一个服务进行服务调用和计算得到结果后,将输出信息直接和下一个服务的输入信息进行映射。就达到基本的服务组装和编排的目的。

docker是一个容器,容器是对软件的包装,老外把容器和集装箱统称为container,其实docker只引用了集装箱这个概念;而虚拟化是对操作系统的包装。

可以这么认为,对于应用软件,镜像是软件生命周期的构建和打包阶段,而容器则是启动和运行阶段。

docker 镜像加速器

https://dashboard.daocloud.io 到daocloud官网注册账号,会默认分配一个地址,我的是 http://6cd2976e.m.daocloud.io

根据说明文档的指引,在Docker Toolbox下执行给出的一串命令,即可。

docker-machine ssh default
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=http://6cd2976e.m.daocloud.io |g" /var/lib/boot2docker/profile
exit
docker-machine restart default 
//修改为阿里云镜像加速器
docker-machine ssh default
sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=https://p31wiatp.mirror.aliyuncs.com |g" /var/lib/boot2docker/profile
exit
docker-machine restart default

 

其中,如果是linux环境,daocloud给的命令执行后会在/etc/docker/daemon.json生成一个对象,这里多了一个逗号,导致docker启动报错,去掉就好了。

vi /etc/docker/daemon.json

{"registry-mirrors": ["https://ytsch4ca.mirror.aliyuncs.com"]}

 

 

参考:https://www.zhihu.com/question/20387284

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值