容器是什么

一、概述

一谈到容器,大家就会想到Docker,但是容器不仅仅只有Docker,还有CoreOS的rkt等。为了让不同容器之间能够互相兼容,Docker、CoreOS、Google等公司成立了一个叫OCI(Open Container Initiative)的组织,用于规范容器标准。目前OCI发布了2个标准runtime spec和image format spec。有了这两个标准,即使是不同厂商开发的容器,只要遵循了同样标准,就能够在不同host上进行移植。

二、容器核心技术

容器运行时需要有一个运行时支撑,就好像JAVA程序运行需要先安装jvm一样,目前有三个主流的容器运行时,分别是lxc、runc、rkt。lxc是Linux上老牌的容器runtime,Docker最早就是用lxc作为容器runtime,runc是Docker开发的容器runtime,遵循OCI规范,现在是Docker默认的容器运行时。rkt是CoreOS开发的容器运行时,遵循OCI规范。

容器的创建设置等都需要客户端来管理,客户端可以是图形界面也可以是命令。不同容器运行时提供的管理工具都不相同:
runc提供的管理工具是Docker Engin,包含后台deamon和cli两部分
rkt提供的管理工具是rkt cli
lxc提供的管理工具是lxd

容器需要想用户提供设置容器内容和属性的能力,这个能力就是通过容器定义工具体现的。这样容器就能够方便的保存和重建。
关于Docker的容器定义工具如下:
docker image,是创建Docker容器的模板
dockerfile,包含若干命令的文本文件,用于创建docker image
CoreOS的rkt容器的定义工具如下:
ACI(App Container Image),这个和docker image类似

容器通常由image创建,管理image的仓库就是Registries,Docker相关的镜像仓库的工具有:
1、Docker Registry,企业可以用它构建私有的仓库
2、Docker Hub是一个公开的镜像仓库,用户可以直接使用上面的image
3、Quay.io是另一个公开的镜像仓库,和DockerHub类似

有了容器运行时,容器可以说是跨平台的,容器可以直接在Linux,MacOS,Windows上运行。但是依旧有专门为容器专门开发的操作系统,这些定制的操作系统,运行容器会更加高效,但是未必方便。CoreOS,Atomic,Ubuntu Core就是比较出名的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值