0.容器管理工具

容器管理工具

容器规范:

容器规范
容器不光是 Docker,还有其他容器,比如 CoreOS 的 rkt。
为了保证容器生态的健康发展,保证不同容器之间能够兼容,包含 Docker、CoreOS、Google在内的若干公司共同成立了一个叫 Open Container Initiative(OCI) 的组织,其目是制定开放的容器规范。

目前 OCI 发布了两个规范:runtime spec 和 image format spec。
有了这两个规范,不同组织和厂商开发的容器能够在不同的 runtime 上运行。这样就保证了容器的可移植性和互操作性。

容器 runtime

runtime 是容器真正运行的地方。runtime 需要跟操作系统 kernel 紧密协作,为容器提供运行环境。
容器runtime

]# docker info | grep Runtime
 Runtimes: runc
 Default Runtime: runc

如果大家用过 Java,可以这样来理解 runtime 与容器的关系:

Java 程序就好比是容器,JVM 则好比是 runtime。JVM 为 Java 程序提供运行环境。同样的道理,容器只有在 runtime 中才能运行。

lxc、runc 和 rkt 是目前主流的三种容器 runtime。

  • lxc 是 Linux 上老牌的容器 runtime。Docker 最初也是用 lxc 作为 runtime。

  • runc 是 Docker 自己开发的容器 runtime,符合 oci 规范,也是现在 Docker 的默认 runtime。

  • rkt 是 CoreOS 开发的容器 runtime,符合 oci 规范,因而能够运行 Docker 的容器。

目前主要使用docker,早期有使用lxc

LXC(LinuX container)

官网:<https://linuxcontainers.org/>

缺点:

  • 模板制作难度高,需手动一步步构建,准备基础目录及可执行程序
  • 大规模使用场景难以横向扩容

Ubantu安装LXC

]# apt install lxc(client) lxd(Server)
]# lxc-checonfig #检查内核对lxc的支持,必须全部为lxc
]# lxc-create -t #模板名称 -n lxc-test
]# lxc-create -t download --name alpine12 --  --dist alpine --release 3.9 --arch amd64
]# lxc-start alpine12 #启动lxc容器
]# lxc-attach alpine12 #进入lxc容器

清华大学镜像地址:<https://mirrors.tuna.tsinghua.edu.cn/help/lxc-images/>

docker

Docker启动一个容器需要一个外部模板,镜像可以保存在一个公共地方进行存储(即harbor);镜像下载即可使用,并且可在原镜像基础上进行自定义配置;一个镜像可以被启动为多个容器。

Docker的镜像是分层构建,镜像底层为库文件且只读层(即不能写入、不能删除数据),从镜像加载启动为一个容器后,会生成一个可写层,其写入的数据会复制到容器目录,但是容器内的数据再删除容器后也随之被删除。

]# docker ps 
]# docker exec -it ID bash
/# mkdir /data
/# echo "172.31.1.100" >> /data/access.log
/# echo "1234567" >> /opt/linux39.txt
/# exit
]# find / -name linux39.txt #可在宿主机内找到刚刚在docker内写入的文件
/var/lib/docker/overlay2/......(随机ID)/diff/opt/linux39.txt
#即可写层,读写层目录/var/lib/docker/overlay2/......(随机ID)/

Docker的优点

Docker的优点
快速部署 短时间可以部署成百上千个应用,更快速交付(镜像)
高校虚拟化 不需要而外的hypervisor,直接基于linux实现应用虚拟化
节省开支 提高服务器利用率
简化配置 环境打包zhi容器,使用时启动即可
快速迁移和扩展 可跨平台在物理机、虚拟机、公有云环境

Docker的缺点

隔离性:物理隔离性差,不如虚拟机彻底

pouch

阿里巴巴开元容器

https://www.infoq.cn/article/alibaba-pouch

https://github.com/alibaba/pouch

安装pouch

OS支持

pouch 的二进制安装包目前已经支持在 centos7 和 ubuntu (16.04 和 14.04)上的安装, 您可以参考以下配置手册从 opsx 站点快速的获取安装包。

Centos 7

添加文件

/etc/yum.repos.d/pouch-centos7.repo

内容如下:

[pouch-stable]
name=Pouch Stable - $basearch
baseurl=http://mirrors.aliyun.com/opsx/pouch/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/opsx/pouch/linux/centos/gpg

[pouch-test]
name=Pouch Test - $basearch
baseurl=http://mirrors.aliyun.com/opsx/pouch/linux/centos/7/$basearch/test
enabled=0
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/opsx/pouch/linux/centos/gpg

然后执行

yum makecache
yum install pouch

即可安装 pouch 了。

Ubuntu 上安装 pouch

导入 gpg 文件

wget http://mirrors.aliyun.com/opsx/pouch/linux/debian/opsx%40service.alibaba.com.gpg.key
apt-key add opsx@service.alibaba.com.gpg.key

添加配置文件

添加文件 /etc/apt/sources.list.d/pouch.list 内容如下:

## pouch - Pouch is an open-source project created by Alibaba Group
## to promote the container technology movement.
deb http://mirrors.aliyun.com/opsx/pouch/linux/debian/ pouch stable
#deb http://mirrors.aliyun.com/opsx/pouch/linux/debian/ pouch test

然后执行

apt-get update

apt-get install pouch

就可以安装 pouch 了。

posted @ 2020-06-15 16:29  Gmiao  阅读(326)  评论(0编辑  收藏  举报