码迷,mamicode.com
首页 > 其他好文 > 详细

Docker Private Registry && 资源限制

时间:2018-08-06 21:41:32      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:节点   metro   option   额外   alt   扩展   层次结构   src   私有   

  • Docker Private Registry

  •     Docker Registry 分类

            Registry用于保存docker镜像,包括镜像的层次结构和元数据

            用户可自建Registry,也可使用官方的Docker Hub

            分类

                Sponsor Registry:第三方的registry,供客户和Docker社区使用

                Mirror Registry:第三方的registry,只让客户使用

                Vendor Registry:由发布Docker镜像的供应商提供的registry

                Private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry

        Registry(repository and index)

            Repository

                由某特定的docker镜像的所有迭代版本组成的镜像仓库

                一个 Registry中可以存在多个Repository

                    Repository可分为“顶层仓库”和“用户仓库”

                    用户仓库名称格式为“用户名/仓库名”

                每个仓库可以包含多个Tag(标签) ,每个标签对应一个镜像

        Index

            维护用户帐户、镜像的校验以及公共命名空间的信息

            相当于为Registry提供了一个完成用户认证等功能的检索接口

        创建私有Registry

            使用docker-distribution

    Server:
    ~]#yum -y install docker-distribution
    ~]#systemctl start docker-distribution
    Client:
    ~]#vim /etc/docker/daemon.json 
    {
      "registry-mirrors": ["https://registry.docker-cn.com","https://4r35ny5z.mirror.aliy
    uncs.com"],
      "insecure-registries": ["centos37.liuyutang.top:5000"]
    }
    ~]#systemctl restart docker
    ~]#docker tag myweb:v0.3-11 centos37.liuyutang.top:5000/myweb:v0.3-11
    ~]#docker push centos37.liuyutang.top:5000/myweb:v0.3-11
    • Harbor

        Harbor简介

            Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

        特性

            基于角色的访问控制 - 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一命名空间(project)里有不同的权限。

            镜像复制 - 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡,高可用,混合云和多云的场景。

            图形化用户界面 - 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。

            AD/LDAP 支持 - Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。

            审计管理 - 所有针对镜像仓库的操作都可以被记录追溯,用于审计管理。

            国际化 - 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。

            RESTful API - RESTful API 提供给管理员对于Harbor更多的操控, 使得与其它管理软件集成变得更容易。

            部署简单 - 提供在线和离线两种安装工具, 也可以安装到vSphere平台(OVA方式)虚拟设备。

        安装配置向导

            https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

        参考手册

            https://vmware.github.io/harbor/cn/

        安装部署

            vmware harbor得借助于docker的单机编排工具:docker-compose 

            使用示例

            vmware harbor安装方式              

                在线安装

                离线安装

                OVA安装

           参考手册:https://github.com/vmware/harbor/blob/master/docs/installation_guide.md

        Harbor安装部署

    ~]#wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.2.tgz
    ~]#tar xf harbor-offline-installer-v1.4.0.tgz -C /usr/local/
    ~]#yum -y install epel-release
    ~]#cd /usr/local/harbor/
    harbor]#vim harbor.cfg
    hostname = centos17.liuyutang.top
    harbor_admin_password = Harbor12345
    db_host = mysql
    db_password = root123
    harbor]#yum -y install docker-compose
    harbor]#./install.sh

        输入用户名和密码登录即可

    技术分享图片

            部署仓库

    技术分享图片

        1、创建用户

    技术分享图片

        2、创建仓库

    技术分享图片

        3、使用刚才创建的用户登录,创建项目

    技术分享图片

    ~]#docker tag myweb:v0.3-1 centos17.liuyutang.top/devel/myweb:v0.3-1
    ~]#docker tag myweb:v0.3-1 centos17.liuyutang.top/devel/myweb:v0.3-2
    ~]#docker tag myweb:v0.3-1 centos17.liuyutang.top/devel/myweb:v0.3-3
    ~]#vim /etc/docker/daemon.json
    {
      "registry-mirrors": ["https://registry.docker-cn.com","https://4r35ny5z.mirror.aliy
    uncs.com"],
      "insecure-registries": ["centos17.liuyutang.top"]  使用http协议,默认使用https
    }
    ~]#docker login centos17.liuyutang.top
    ~]#docker push centos17.liuyutang.top/devel/myweb

      技术分享图片

        可查看推上来的镜像

        使用docker-compose命令可管理harbor服务

    ~]#docker-compose stop
    ~]#docker-compose start
    Define and run multi-container applications with Docker.
    
    Usage:
      docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
      docker-compose -h|--help
    • Docker资源限制

        默认情况,在Docker容器中没有任何资源限制

        可以从名称空间(namespace)和控制组(cgroups)两个维度来定义

        Memory

            OOME:如果Linux内核探测到当前宿主机已经没有足够内存可用,用于实现执行某些重要的系统功能,它会抛出一个异常,并且开始启动去killing某些进程来释放内存

                一旦发生OOME,任何进程都有可能被杀死,包括docker daemon在内

                为此,Docker特地调整了docker daemon的OOME优先级,以免它被内核“正法”,但容器的优先级未被调

            限制内存资源

        技术分享图片

            --memory-swap

        技术分享图片

        CPU

            默认设置每个容器可以使用宿主机的所有CPU资源

                进程分类

                    CPU密集型:调低优先级

                    IO密集型

            配置默认CFS调度

    技术分享图片

        使用示例:使用stree镜像做压测

    内存做限制:
    ~]#docker pull lorel/docker-stress-ng
    ~]#docker run --name stress --rm -it -m 256m lorel/docker-stress-ng:latest --vm 2
    ~]#docker top stress
    ~]#docker stats stress
    CPU做限制:
    ~]#docker run --name stress -it --rm --cpus 2 lorel/docker-stress-ng:latest --cpu 8 
    ~]#docker stats stress   
    ~]#docker kill stress
    ~]#docker run --name stress -it --cpuset-cpus 0,1 --rm lorel/docker-stress-ng:latest --cpu 8
    ~]#docker stats stress
    ~]#docker run --name stress -it --cpu-shares 1024 --rm lorel/docker-stress-ng:latest --cpu 8
    ~]#docker run --name stress1 -it --cpu-shares 512 --rm lorel/docker-stress-ng:latest --cpu 8

    Docker Private Registry && 资源限制

    标签:节点   metro   option   额外   alt   扩展   层次结构   src   私有   

    原文地址:http://blog.51cto.com/10461810/2155441

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!