zoukankan      html  css  js  c++  java
  • 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 了。

  • 相关阅读:
    关于MySQL中ALTER TABLE 的命令用法——SQL
    replace函数——SQL
    SQL构造一个触发器
    【视频转换】监控视频DAV转mp4
    【pyqt5+opencv】如何将大量图片合成一张图
    【OpenCV+pyqt5】视频抽帧裁剪与图片转视频
    【Caffe】生成数据之修改label
    【labelme】标注工具Trick
    【OpenCV+pyqt5】视频抽帧相关操作
    【pyqt5】Pyinstaller封装OpenCV异常
  • 原文地址:https://www.cnblogs.com/Gmiaomiao/p/13172876.html
Copyright © 2011-2022 走看看