docker (1) 附加附加 基础知识必知(重要)基础知识必知(重要)
一、基础知识:一、基础知识:
1.Docker runtime
runtime是容器真正运行的地方。借助JAVA中JVM的概念来理解。
lxc、、runc、、rkt是目前主流的三种容器是目前主流的三种容器runtime。。
lxc是Linux上老牌的容器runtime。Docker最初也是用lxc作为runtime的。
runc是Docker自己开发的runtime。目前Docker的默认runtime。符合oci规范。
rkt是CoreOS开发的容器runtime。符合oci规范,因而能够运行Docker的容器。
2.容器管理工具容器管理工具
lxd是lxc对应的管理工具。
runc的管理工具是Docker engine,包括后台deamon和cli两部分,我们通常提到的Docker一般就是指docker engine。
rkt的管理工具是rkt cli。
3.容器定义容器定义
docker image是Docker容器的模板,runtime根据docker image来创建容器。
dockerfile是包含若干个命令的文本文件,可以通过该文件创建出docker image。
定义过程:dockerfile—>docker image—>container
4.容器仓库容器仓库(Registry)
Registry分为共有和私有两种:
Docker Registry :私有仓库
Docker Hub:共有仓库(私有收费)
Quay.io :另一个共有仓库
5.容器容器OS
除了在传统的Linux、MACOS、Windows上运行容器,目前也存在一些容器OS,例如CoreOS、Atomic、Ubuntu Core
等。
比如传统操作系统,容器操作系统体积更小,启动更快。
6.容器平台容器平台
1.容器编排引擎:docker swarm、kubernetes、mesos+marathon等。
2.容器管理平台:Rancher、ContainerShip等。
3.基于容器的PaaS:Deis、Flynn、Dokku等。
7.容器网络容器网络
docker network
新型容器网络指跨主机的网络,分为两大类——隧道方案和路由方案。 隧道方案的典型代表包括:
1)Weave:UDP广播,本机建立新的BR,通过PCAP互通。
2)Open vSwitch(OVS):基于VxLAN和GRE协议。
3)Flannel:UDP广播、VxLan。
4)Overlay: docker 官方开发,v1.9后推出
隧道方案对底层的网络没有过高要求,只要是三层可达,就能构建出一个基于隧道的容器网络, 缺点就是节点规模的增长复
杂度会提升,而且出了网络问题维护跟踪难度高