zoukankan      html  css  js  c++  java
  • docker镜像的仓库

    一、docker镜像的仓库 --- repos-registry的创建:

    仓库分为公共仓库和私有仓库

    DockerHub的官方仓库 https://hub.docker.com

    DockerPool社区仓库 https://dl.dockerpool.com

    Dockern Pool (http://dockerpool.com)是国内专业的Docker社区,目前也提供了官方镜像的下载管理服务

    仓库 --- 创建自己的私有仓库

    (1)仓库端172.16.254.162

    [root@localhost ~]# docker images

    clip_image001

    [root@localhost ~]# docker run -d -p 5000:5000 -v /var/lib/registry:/var/lib/registry --restart=always --name registry registry:2

    clip_image002

    [root@localhost ~]# docker ps -a

    clip_image003

     

     

    (2)docker客户端设置,172.16.254.60

    2.1. 修改配置文件将私有库地址加入进去(yum安装)

    # vim /etc/sysconfig/docker

    # line 4: add Docker-Registry's URL

    OPTIONS='--insecure-registry 192.168.210.128:5000

    clip_image004

    注意:有时会遇到如下报错:

    clip_image005

    这是由于Registry为了安全性考虑,默认是需要https证书支持的,可利用2.2提到的方法解决。

    2.2. 或者修改/etc/docker/daemon.json文件,加入如下内容:

    "insecure-registries": ["172.16.254.162:5000"],

    clip_image006

    systemctl restart docker

    docker images

    clip_image007

    (3)客户端操作

    docker tag busybox:latest 172.16.254.162:5000/busybox:latest

    clip_image008

     

    docker push 172.16.254.162:5000/busybox:latest

    clip_image009

    客户端删除本地原有的busybox 镜像,然后向私有库172.16.254.162重新下载

    docker pull 172.16.254.162:5000/busybox:latest

    clip_image010

    docker images

    clip_image011

    下载成功

    二、docker底层依赖的核心技术

    命名空间 (Namespaces)

    控制组 (Control Groups)

    联合文件系统 (Union File System)

    Linux 虚拟网络支持:本地和容器内创建虚拟接口

    1. 命名空间 (Namespaces):实现了容器间资源的隔离

    每个容器拥有自己独立的命名空间 , 运行其中的应用就像是运行在独立的操作系统中一样 , 我们都可以看到文件系统,网卡等资源保证了容器之间互不影响,

    namesaces管理进程号 , 每个进程命名空间有一套自己的进程号管理方法 , 进程命名空间是一个父子关系的结构 , 子空间中的进程对于父空间是可见的

    网络命名空间—有了 PID 命名空间 , 那么每个名字中的进程就可以相互隔离 , 但是 , 网络端口还是共享本地的端口 . 网络命名空间就是为进程提供一个完全独立的网络协议栈的视图

    包括 : 网络设备接口 ,IPv4 和 IPv6 协议栈 ,IP 路由表 , 防火墙规则 ,sockets 等等 ...

    目前容器所使用的命名空间提供5种不同的类型 :(了解即可)

    clip_image012

    2. 控制组功能 cgroups:

    制组 (Control groups)--CGroups 是 Linux 内核的一个特性 ,主要用来对共享资源进行隔离、限制、审计等 。cgroups 允许对于进程或进程组公平 ( 不公平 ) 的分配 CPU 时间、内存分配和 I/O 带宽。

    容器通过 cgroups 来得到所能够管理资源的分配和使用。因此容器所获得资源仅为所有系统资源的一个部分

    资源限制 : 内存子系统为进程组设置内存使用上限,内存达到上限后再申请内存,就会发

    出 Out of Memory

    优先级 : 通过优先级让一些组得到更多 CPU 等资源

    资源审计 : 用来统计系统上实际把多少资源用到适合的目的上 , 可以使用 cpuacct 子系统

    记录某个进程组使用的 CPU 时间

    隔离 : 为组隔离名字空间 , 这样一个组不会看到其他组的进程 .网络连接和文件系统

    控制 : 挂起 . 恢复和启动等操作

    3. 联合文件系统 (Union FS)

    docker 中使用AUFS(another Union File System 或 v2 版本以后的Advanced multi-layered Unification File System) 控制为每一个成员目录设定只读 / 读写 / 写出权限 , 同时 AUFS 有一个类似分层的概念 , 对只读权限的分支可以逻辑上进行增量的修改

    轻量级的高性能分层文件系统 , 它支持将文件系统中的修改信息作为一次提交 , 并层层叠加 , 并且可以将不同目录挂载到同一个虚拟文件系统下docker 目前支持的联合文件系统包括AUFS/btrfs/vfs/DeviceMappe

  • 相关阅读:
    Redis学习手册(Set数据类型)
    Redis学习手册(Key操作命令)
    Redis学习手册(String数据类型)
    Redis学习手册(开篇)
    SQLite学习手册(目录)
    Redis学习手册(Hashes数据类型)
    Redis学习手册(SortedSets数据类型)
    Redis学习手册(List数据类型)
    加密,解密
    异步 '省','市','区' 三级连动
  • 原文地址:https://www.cnblogs.com/liangzb310/p/11179711.html
Copyright © 2011-2022 走看看