关于Docker你不知道的事——什么是Docker
(提示:对Docker感兴趣的朋友可以加我微信:ghostcloud2016,然后我把你加到我们的一个Docker爱好者群组里。)
之前谈虚拟化历史就说过,Docker实际是源自于dotCloud的一个项目,在2013年开源后就飞速发展。我们今天要谈的是,什么是Docker?
Docker-engine
通常我们提Docker的时候,都指的是Docker-engine,docker-engine就是运行在主机上的一个守护进程,类似于于Hyper-V的管理程序。Docker-engine是C/S的架构,daemon就是它的server,我们通常使用的docker命令有两层功能,一层是作为daemon运行,一层是作为client运行。daemon可以监听在某一个socket端口上,也可以监听到unix本地socket之上,而client也可以操作本机的daemon和远程的daemon。当操作远程daemon的时候,需要在client后面跟IP、端口以及TLS证书。
容器是什么
谈到容器,很多人会把它当成是一个主机。这其实是错误的。容器在主机上就是一个进程,但是它有不同于普通的进程。普通的进程之间是共用的CPU、内存、网络、PID等资源,而容器是隔离的进程,它运行在一个沙盒之中,同时还能限定它所使用的资源。这主要借助于Linux Kernel的CGroup和Namespace技术,CGroup可以控制进程使用多少资源,如:CPU、内存、磁盘IO速率等,Namespace用来隔离资源,如:PID、网络、主机名等。正因为如此Docker最初原生只支持Linux,后来所谓的跨平台支持也只是通过VM来远程操控。不过Windows Server 2016已经加入了对Docker的原生支持。
怎么运行
一个进程肯定少不了对于内容的需求,就好比一台电脑不能没有硬盘。容器的内容就是它的Layered FS,这个也可以说是Docker创新的一方面。它使用了Copy-on-right的技术,将文件系统进行了分层,可以充分的复用公共部分。镜像其实很像以前我们安装操作系统的Ghost镜像,使用户能够快速的安装它需要的软件。容器运行时,就会装载镜像文件,以及相关的环境,同时在最上层加入一个可写层。
容器能解决什么问题
由于容器的轻量化,容器能解决的根本问题就是提升效率和速度。Docker 宣称的是Build, Ship and Run anywhere,只是从速度、效率和可移植性来讲的。但是,你有没有想过,云计算一直要解决的是什么问题——水平扩展,水平扩展是不是就需要很多的结点。对了,Docker会成为云计算的基础架构,这才是docker这么火的根本原因。说到具体的用途,我总结了一些:
- 标准化应用发布,docker容器包含了运行环境和可执行程序,可以跨平台和主机使用;
- 节约时间,快速部署和启动,VM启动一般是分钟级,docker容器启动是秒级;
- 方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合;
- 节约成本,以前一个虚拟机至少需要几个G的磁盘空间,docker容器可以减少到MB级;
- 方便持续集成,通过与代码进行关联使持续集成非常方便;
- 可以作为集群系统的轻量主机或节点,在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
关于Docker你不知道的事——虚拟化历史
(提示:对Docker感兴趣的朋友可以加我的微信:ghostcloud2016,我会把您加到我们的一个Docker爱好者微信群中,在这个群中,有来自五湖四海的Docker爱好者,我们共同交流,共同学习!) 整个虚拟化技术的发展有超过半个世纪的历史。虚拟化一般分为硬件级虚拟化(hardware-level-virtualization)和操作系统级虚拟化(os-level-virtualization)。硬件级虚拟化是运行在硬件之上的虚拟化技术,它的管理软件也就是我们通常说的hypervisor或者virtual machine monitor,它需要模拟的就是一个完整的操作系统,也就是我们通常所说的基于Hyper-V的虚拟化技术,VMWare, Xen, VirtualBox,亚马逊AWS和阿里云都是用的这种技术。操作系统级虚拟化是运行在操作系统之上的,它模拟的是运行在操作系统上的多个不同进程,并将其封装在一个密闭的容器里面,也称为容器化技术。Docker正是容器虚拟化中目前最流行的一种实现。 硬件级虚拟化的历史 19世纪60年代:美国出现了第一个虚拟化系统,它是由IBM开发的CP-...
- 下一篇
理解 virbr0 - 每天5分钟玩转 OpenStack(11)
virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供 NAT 访问外网的功能。 virbr0 默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟网卡提供 DHCP 服务。 下面我们演示如何使用 virbr0。 在 virt-manager 打开 VM1 的配置界面,网卡 Source device 选择 “default”,将 VM1 的网卡挂在 virbr0 上。 启动 VM1,brctl show 可以查看到 vnet0 已经挂在了 virbr0 上。 # brctl show bridge name bridge id STP enabled interfaces br0 8000.000c298decbe no eth0 virbr0 8000.fe540075dd1a yes vnet0 用 virsh 命令确认 vnet 就是 VM1 的虚拟网卡。 # virsh domiflist VM1 Interface Type S...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6