Docker核心技术

VM vs Docker

在虚拟化架构中,底层是硬件服务,然后是操作系统再然后是虚拟化层的Hypervisor,有了Hypervisor,就可以安装虚拟机操作系统,然后配置应用运行所需要的依赖环境,然后安装各种APP,在容器时代,底层也是硬件和操作系统,然而不是安装Hypervisor,而是安装一个Docker引擎,安装完Docker引擎之后,就可以在容器中配置应用运行所需要的依赖环境,然后安装各种各样的APP,就可以运行起来了。很直观的对比说明,容器的运行不需要安装虚拟机的操作系统容器是一种比虚拟机更加轻量级的虚拟化技术

Docker的优势

运行在同样的主机上,Docker容器共用一个container,而虚拟机则使用自己的操作系统上的container,虚拟机之间拥有比Docker更好的隔离性,但Docker相对于虚拟机来说有更多的优势,比如虚拟机操作系统的存在额外占用了更多的计算资源,其次,从空间占用上,虚拟机基本都是GB级别的,而对容器来说可以小至几MBDocker比虚拟机有更强的跨平台迁移能力,如虚拟机无法从Vmware迁移到KVM,但只要安装了Docker引擎,Docker容器就可以在这些平台上运行起来

容器、镜像、仓库

容器和虚拟机都是承载相关应用的载体。

镜像可以用虚拟机模板进行类比,当容器安装了特定应用以后,就可以打包成镜像,需要此应用的时候,就可以将镜像下载下来,快速地运行起来。

仓库是存储镜像的地方。

Docker容器

容器有三种状态:Running、Stopped、Paused,对应虚拟机的运行、关机、挂起是相似的,通过Docker命令可以将容器重启、停止、启动、挂起、恢复启动。

Docker镜像

当镜像下载到本地后就可以启动一个基于这个镜像的容器,当对容器做修改以后,也可以将容器commit回去,这时会生成一个新版本的镜像。Docker镜像是一层级结构的文件系统,镜像最上层往往是可写的,存储着已经运行的容器的修改信息,当对容器进行kill时,这些修改信息就会被删掉,当容器的commit成为新的镜像时,这些修改信息也会保存成新的层级。镜像的生成除了commit之外,还有一种更标准更常用的方法:使用Dockerfile来build镜像,这种方式build出的镜像更干净透明。

Docker仓库

Dockerhub是Docker的官方镜像仓库,仓库中存放了各种标准化的镜像,可以使用pull命令直接从Dockerhub中下载镜像到本地进行使用,使用Docker还可以建立其余的镜像仓库, 用来存放常用镜像和企业自定义的应用镜像,还可以从私有的仓库中下载需要的镜像,也可以定制镜像上传到私有仓库中。

Build、Ship、Run

由上可知,Docker的核心技术主要在build、ship、run。首先利用Dockerfile将代码组建build成为镜像,接着将镜像上传到企业之间的镜像仓库中,当需要用到镜像时,就可以在任何地方连接到镜像仓库,将镜像下载到本地,然后将其run下来就可以。这样可以实现Docker一次构建,在任何地方运行的构想

Docker数据卷

前面说到容器一旦关闭,其上的修改信息就会丢失,这对于有状态的应用来说是不可接受的。我们可以通过给容器挂载文件目录或存储来解决,从而可以存储一些容器运行中的一些数据。当容器崩溃时候,重新启动一个容器时依然可以访问之前存储下来的数据,这种方式也可以解决容器间、主机和容器间的数据访问

数据卷存在意义

  1. 容器运行时可使用数据卷中的文件
  2. 数据卷可在多个容器间共享
  3. 存储容器运行过程中产生的数据
  4. 方便主机对容器数据的访问

Docker网络

容器间的通信、容器和web应用之间的通信往往需要容器的网络来实现,Docker的网络有四种模式:Bridged、Host、Container、None。

Bridged:表示容器可以与主机上的容器、主机、web进行通信。

Host:表示容器只能与主机进行通信

Container:表示容器,只能与容器之间进行通信,而无法与主机进行通信

None:表示没有网络连接

常用的是Bridged模式,安装Docker之后,主机会生成一个Docker网桥,每个容器拥有一个虚拟网卡,容器网卡通过网桥连接到主机的物理网卡,然后与web进行通信。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值