搭建docker的私有registry

1、   registry简介

Docker在2015年推出了distribution项目,即Docker Registry 2。相比于old registry,Registry 2使用Go实现,在安全性、性能方面均有大幅改进。Registry设计了全新的Rest API,并且在image存储格式等方面不再兼容于old Registry。去年8月份,docker官方hub使用Registriy 2.1替代了原先的old Registry。如果你要与Registry2交互,你的Docker版本至少要是Docker 1.6。

官方在Docker hub上提供了registry的镜像(详情),我们可以直接使用该registry镜像来构建一个容器,搭建我们自己的私有仓库服务。

2、   环境概述

# uname –r

3.10.0-327.22.2.el7.x86_64

 

# docker –v

Docker version 1.12.6, build 88a4867/1.12.6

 

# ip a

10.10.229.43

 

3、   修改配置文件

搭建过程中会出现无法push镜像到私有仓库的问题,是https证书问题,因为Docker从1.3.X之后,与docker registry交互默认使用的是https,而此处搭建的私有仓库只提供http服务,我们启动的registry服务不是安全可信赖的,这时我们需要修改docker的配置文件,添加一行内容

# vim  /etc/sysconfig/docker

INSECURE_REGISTRY='--insecure-registry 10.10.229.43:5000'

#10.10.229.43:为dicker容器的宿主机ip,5000为宿主机映射到容器的port。

# systemctl restart docker

注意:一定要在搭建仓库前修改配置文件,搭建仓库后修改,重启docker是不生效的,或者你删除原来创建的容器,在另创建一个新的容器,也可以。

4、      部署registry

完成第三步后,将docker hub上的registry镜像pull到本地或直接启动容器,不用pull到本地。

# docker pull docker.io/registry

# docker tag docker.io/registry  registry:cuishuai

# docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry registry:cuishuai

参数说明:

-v /data/registry:/var/lib/registry:默认情况下,会将仓库存放于容器内的/var/lib/registry,注意新版本不在是默认放在/tmp/registry目录下,指定本地目录/data/registry挂载到容器

容器启动成功,上传一个镜像进行测试:

# docker images

@我们要通过docker tag将该镜像标志为要推送到私有仓库

# docker tag registry   10.10.229.43:5000/registry:cuishuai

# docker images

# docker push 10.10.229.43:5000/registry

验证方式有两种,一是去/data/registry下看看有没有文件生成;

二是执行如下命令查看:有输出代表上传成功。此命令也用于查看私有registry的image。

#  curl  10.10.229.43:5000/v2/_catalog

{"repositories":["registry"]}

5、      使用registry

如果是在其他服务器上使用搭建的registry,必须要编辑docker的配置文件INSECURE_REGISTRY='--insecure-registry 10.10.229.43:5000'

把上面的配置加入其中;并重新启动docker。

如果没有执行该操作会报如下错误:

Error response from daemon: invalid registry endpoint https://10.10.229.43:5000/v0/: unable to ping registry endpoint https://10.10.229.43:5000/v0/

v2 ping attempt failed with error: Get https://10.10.229.43:5000/v2/: tls: oversized record received with length 20527

v1 ping attempt failed with error: Get https://10.10.229.43:5000/v1/_ping: tls: oversized record received with length 20527. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 10.10.229.43:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/10.10.229.43:5000/ca.crt

修改/etc/sysconfig/docker”

# vim /etc/sysconfig/docker

INSECURE_REGISTRY='--insecure-registry 10.10.229.43:5000'

# systemctl  restart  docker

# docker pull 10.10.229.43:5000/registry

Using default tag: latest

Trying to pull repository 10.10.229.43:5000/registry ...

latest: Pulling from 10.10.229.43:5000/registry

90f4dba627d6: Pull complete

3a754cdc94a5: Pull complete

0756a217635f: Pull complete

f82b9495c796: Pull complete

154ef19ddee6: Pull complete

Digest:sha256:5eaafa2318aa0c4c52f95077c2a68bed0b13f6d2b464835723d4de1484052299

docker搭建私有registry的更多相关文章

  1. [docker]搭建私有registry

    导入导出镜像比较麻烦,共享镜像占了工作中一大部分时间. 搭建了个本地registry, 不支持用户名密码验证的 和 支持用户名密码验证的两种. 参考: https://docs.docker.com/ ...

  2. Docker 搭建私有仓库

    Docker 搭建私有仓库 环境: docker 版本 :18.09.1 主机地址:192.168.1.79 1.运行并创建私有仓库 docker run -d \ -v /opt/registry: ...

  3. [Docker]docker搭建私有仓库(ssl、身份认证)

    docker搭建私有仓库(ssl.身份认证) 环境:CentOS 7.Docker 1.13.1 CentOS 7相关: https://www.cnblogs.com/ttkl/p/11041124 ...

  4. docker 搭建私有云仓库

    docker搭建私有仓库   registry私有仓库 下载docker-distribution软件包 yum install epel-release yum install docker-dis ...

  5. 温故知新,基于Nexus3和Docker搭建私有Docker Mirrors镜像库

    前言 接着上一篇文章关于基于Nexus3和Docker搭建私有Nuget服务的探索,我们可以进一步利用Nexus3来创建一个私有的Docker镜像库满足内部需求. 仓库类型 hosted: 本地存储, ...

  6. 菜鸟系列docker——搭建私有仓库harbor(6)

    docker 搭建私有仓库harbor 1. 准备条件 安装docker sudo yum update sudo yum install -y yum-utils device-mapper-per ...

  7. Docker搭建私有仓库

    1,下载仓库镜像. docker pull  registry    //主要用于搭建私有仓库的. 2,将宿主机端口映射到容器中去,容器的5000端口是不能更改的. docker run -d -p ...

  8. docker 搭建私有云盘 Seafile

    缘起 现如今各种云存储服务其实挺多的,国外有经典的DropBox.Google Drive.微软的OneDrive等,国内也有可以免费使用的各种云. 那么为什么想要搭建私有云存储呢?主要是本着“自己的 ...

  9. openshift搭建私有registry

    1.创建registry服务器 (1)安装需要的包 yum -y install podman httpd-tools (2)创建registry目录 mkdir -p /opt/registry/{ ...

随机推荐

  1. [Openwrt 项目开发笔记]:Openwrt必要设置(二)

    [Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 前面的两篇blog中,我将如何搭建Openwrt ...

  2. ThinkPad T430i,如何将WIN8换成WIN7???

    1. 启动时不断点击键盘上的F1键,进入BIOS 界面选择“Restart”→把 “OS Optimized Default”设置为 “disabled” ,(OS Optimized Default ...

  3. laravel字段自增/自减

    DB::table('users')->increment('votes');DB::table('users')->increment('votes', 5);DB::table('us ...

  4. 设计模式之模版方法模式(Template Method Pattern)

    一.什么是模版方法模式? 首先,模版方法模式是用来封装算法骨架的,也就是算法流程 既然被称为模版,那么它肯定允许扩展类套用这个模版,为了应对变化,那么它也一定允许扩展类做一些改变 事实就是这样,模版方 ...

  5. Python初学手记----在window系统中安装环境

    官网地址: https://www.python.org/ Win版下载地址:https://www.python.org/downloads/windows/ 安装注意:安装路径推荐修改. path ...

  6. Day 14 列表推导式、表达器、内置函数

    一. 列表推导式# l1 = []# for i in range(1,11):# l1.append(i)# print(l1)# #输出结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, ...

  7. 队列(链式队列)----C语言

    链式队列----用链表实现,链式队列就是一个操作受限的单向链表,如果读者了解单向链表的建立过程,那理解链式队列就很容易了,先回顾一下单向链表的建立过程 (不熟悉单向链表的可以先看看另一片随笔,再回来看 ...

  8. 手把手教你从零搭建Python数据分析环境

    由于最近再做推荐系统的特征处理,需要借助一些工具来筛选特征.最初使用了R,R的安装很简单,而且API也很容易使用,直接就能出图.后来,发现很多人在python和R之间做选择,所以我也在两个工具间摇摆不 ...

  9. html5 页面基本骨架

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  10. Swift 里字符串(十)修改字符串

    以append操作为例 public mutating func append(_ other: String) { if self.isEmpty && !_guts.hasNati ...