一、Docker Registry分类

Registry用于保存docker镜像,包括镜像的层次结构和元数据。都是基于https或者http工作的。

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

分类:

  • Sponsor Registry:第三方的registry,供客户和Docker社区使用;
  • Mirror Registry:第三方的registry,只让客户使用;
  • Vendor Registry:由发布docker镜像的供应商提供的registry;
  • Private Registry:通过设有防火墙和额外的安全层的私有实体提供的registry。

二、制作私有registry

运行方式:安装RPM包 -- docker-distribution;registry也被运行为容器,docker官方有提供镜像;使用harbor来构建本地私有registry。

1、通过RPM包安装 docker registry

[root@oracle ~]# yum install docker-registry -y
[root@oracle ~]# rpm -ql docker-distribution
[root@oracle ~]# cat /etc/docker-distribution/registry/config.yml #配置文件,可以更改监听,镜像存储位置等
[root@oracle ~]# systemctl start docker-distribution
[root@oracle ~]# docker tag mynginx:v0.3-2 192.168.42.133:5000/mynginx:v0.3-2
[root@oracle ~]# docker push 192.168.42.133:5000/mynginx:v0.3-2 # 默认基于https工作,所以会报错
[root@oracle ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.42.133:5000"],
"bip": "10.10.1.2/16"
}
[root@oracle ~]# docker push 192.168.42.133:5000/mynginx:v0.3-2  #推送成功,默认放在/var/lib/registry/下

2、运行为容器

与常规运行容器相同,官方已提供镜像(docker search registry)但由于容器中数据随容器的生命周期结束而丢失,所以我们需要为其提供专门的存储卷。

3、使用Harbor来搭建

(1)介绍

Harbor是一个企业级的仓库应用程序,是VMWare在docker distribution的基础上做的二次开发项目,提供了很多额外程序和Web界面。

Harbor官方为了简化安装,把harbor做成了在容器中运行的应用。由于harbor的运行依赖于MySQL、Redis等很多存储系统,所以需要多个容器协同工作。因此需要使用docker的单机容器编排工具docker compose(yum info docker-compose,docker-compose可做的操作很多,有兴趣官网了解)。

(2)安装Harbor

github:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md  #去GitHub上下载部署文件

[root@oracle ~]# yum install docker-compose -y
[root@oracle soft]# tar xf harbor-offline-installer-v1.9.0.tgz
[root@oracle soft]# mv harbor /usr/local/
[root@oracle harbor]# vim /usr/local/harbor/harbor.yml  #按需修改配置文件,包括主机名,管理员初始密码,数据库初始密码等,然后安装
[root@oracle harbor]# ./install.sh 

此时,浏览器访问http://192.168.42.133/harbor/sign-in?redirect_url=%2Fharbor%2Fprojects,使用admin/Harbor12345登录。

web页面新建一个test项目,然后去推送镜像到此仓库,然后web页面就可以查看刚刚推送的镜像了。

[root@node1 ~]# docker tag nginx:1.14-alpine node1.cmxu.com/test/nginx:apline
[root@node1 ~]# docker login node1.cmxu.com
[root@node1 ~]# docker push node1.cmxu.com/test/nginx:apline
# 重启docker进程后,也需要重启Harbor
[root@node1 ~]# docker-compose --help
[root@node1 ~]# docker-compose down
[root@node1 ~]# docker-compose up -d

7.docker私有registry的更多相关文章

  1. 为docker私有registry配置nginx反向代理

    公司的Docker私有registry已经搭建好了,用官方的registry image很容易就搭建好了.现在就是要用nginx的反向代理把它放出来,以便在外网可以访问. 我的上一篇blog 讲了如何 ...

  2. 9、Docker私有registry

    Docker Registry分类 Docker 默认是使用https的,但是如果在自己得私有局域网中,你指明使用http也是可以的. Registry主要的作用是托管镜像: 运行docker reg ...

  3. Docker 私有registry出现的证书问题

    在上一篇 最近搭建的私有registry里,参考的文章指出,在push时可能出现问题: 可能会出现无法push镜像到私有仓库的问题.这是因为我们启动的registry服务不是安全可信赖的.这是我们需要 ...

  4. docker 私有registry 配置

    备注:此处使用linux镜像配置仓库 registry 启动步骤 https://hub.docker.com/_/registry/ docker login docker pull registr ...

  5. Docker 学习9 Docker私有registry

    一.docker registry分类 二.安装docker-hub提供的registry 1.安装 [root@localhost yum.repos.d]# yum install -y dock ...

  6. docker 私有registry harbor安装

    一,harbor安装: 参考:Installation and Configuration Guide 1,安装docker 2,安装docker compose sudo curl -L " ...

  7. docker网络 存储卷 Dockerfile 私有registry

    1.bridge模式 docker run --name bu1 -it --network bridge --rm busybox # 相当于 docker run --name bu1 -it - ...

  8. 建立docker私有库(docker registry)(转)

    建立docker私有库(docker registry) 博客分类: docker   我的目标还是无互联网安装,部署内部的docker私有库,目前docker镜像的获得还是需要互联网,将下载好的do ...

  9. Docker私有仓库 Registry中的镜像管理

    这里主要介绍Registry v2的版本 查看Registry仓库中现有的镜像: # curl -XGET http://10.0.30.6:5000/v2/_catalog# curl -XGET ...

随机推荐

  1. 卡方检验(python代码实现)

     https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博 ...

  2. 三十九、python面向对象一

    A.python面向对象 1.面向对象基础:面向对象三个特性:封装,继承,多态C# java 只能用面向对象编程Ruby,python 函数+面向对象 函数式编程:def 函数def f1(a): r ...

  3. leetcode 4寻找两个有序数组的中位数

    最优解O(log(min(m,n))) /** 之前用合并有序数组的思想做了O((m+n+1)/2),现在试一试O(log(min(m,n))) 基本思路为:通过二分查找较小的数组得到对应的中位数(假 ...

  4. 细说python类3——类的创建过程

    细说python类3——类的创建过程 https://blog.csdn.net/u010576100/article/details/50595143 2016年01月27日 18:37:24 u0 ...

  5. python 封装dlib模型进行人脸识别系统的登录认证

    1.直接上干货 #!/usr/bin/python # -*- coding: utf-8 -*- import time import dlib import numpy as np class f ...

  6. tensorflow2.0 numpy.ndarray 与tenor直接互转

    1.代码参考 import numpy as npimport tensorflow as tf a = np.random.random((5,3)) b = np.random.randint(0 ...

  7. 学习总结&实验报告1

    Java实验报告 1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个“水仙花数”. 实验代码: public class Project ...

  8. [Web 前端] 024 js 的定时器及函数

    1. Javascript 定时器 1.1 计时事件 设定一个间隔,时间到了后准时执行代码,此为"计时事件" 1.2 作用 1.制作动画 2.异步操作 1.3 定时器的类型及语法 ...

  9. JAVA知识点总结(六)(集合)

    第十九章 集合 一.数组弊端: 数组长度是固定的,无法继续添加元素. 二.什么是集合: Java提供一个集合类,它的长度是可以改变的,能储存任意的对象,长度随着元素的增加而增加. 三.集合和数组的区别 ...

  10. 51nod 1963 树上Nim

    这题还真就是树上玩 Nim... 相关知识点就是阶梯博弈,具体可以康这里 →_→ PS:手动搜索阶梯博弈 然后这题就转化为了多路径的阶梯博弈,这样的话咱定义根节点深度为 0,然后把所有奇数深度点的权值 ...