docker搭建私有registry
搭建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的更多相关文章
- [docker]搭建私有registry
导入导出镜像比较麻烦,共享镜像占了工作中一大部分时间. 搭建了个本地registry, 不支持用户名密码验证的 和 支持用户名密码验证的两种. 参考: https://docs.docker.com/ ...
- Docker 搭建私有仓库
Docker 搭建私有仓库 环境: docker 版本 :18.09.1 主机地址:192.168.1.79 1.运行并创建私有仓库 docker run -d \ -v /opt/registry: ...
- [Docker]docker搭建私有仓库(ssl、身份认证)
docker搭建私有仓库(ssl.身份认证) 环境:CentOS 7.Docker 1.13.1 CentOS 7相关: https://www.cnblogs.com/ttkl/p/11041124 ...
- docker 搭建私有云仓库
docker搭建私有仓库 registry私有仓库 下载docker-distribution软件包 yum install epel-release yum install docker-dis ...
- 温故知新,基于Nexus3和Docker搭建私有Docker Mirrors镜像库
前言 接着上一篇文章关于基于Nexus3和Docker搭建私有Nuget服务的探索,我们可以进一步利用Nexus3来创建一个私有的Docker镜像库满足内部需求. 仓库类型 hosted: 本地存储, ...
- 菜鸟系列docker——搭建私有仓库harbor(6)
docker 搭建私有仓库harbor 1. 准备条件 安装docker sudo yum update sudo yum install -y yum-utils device-mapper-per ...
- Docker搭建私有仓库
1,下载仓库镜像. docker pull registry //主要用于搭建私有仓库的. 2,将宿主机端口映射到容器中去,容器的5000端口是不能更改的. docker run -d -p ...
- docker 搭建私有云盘 Seafile
缘起 现如今各种云存储服务其实挺多的,国外有经典的DropBox.Google Drive.微软的OneDrive等,国内也有可以免费使用的各种云. 那么为什么想要搭建私有云存储呢?主要是本着“自己的 ...
- openshift搭建私有registry
1.创建registry服务器 (1)安装需要的包 yum -y install podman httpd-tools (2)创建registry目录 mkdir -p /opt/registry/{ ...
随机推荐
- Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页
Delphi for iOS开发指南(8):在iOS应用程序中使用Tab组件来显示分页 在FireMonkey iOS应用程序中的Tab Tab由FMX.TabControl.TTabControl定 ...
- Postgres重置自增长id列(reset sequence)
简单的两个方法,个人比较喜欢第一个 ①ALTER SEQUENCE seq RESTART WITH 1;② SELECT setval('sequence_name', 0); 参考自http:// ...
- 【python】基础入门
1.正则表达式 import re sql="aaa$1bbbbccccc$2sdfsd gps_install_note_id =$3;" regexp=r'\$\d+' # 编 ...
- 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构
本篇承接上篇内容,如果你不小心点击进来,建议重新从第一篇开始完整阅读. 构建NetCore应用框架之实战篇索引 一.BitAdminCore框架简介 从前篇论述我们知道,我们接下来将要去做一个管理系统 ...
- DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段的使用
参考于:https://www.cnblogs.com/huchong/p/7895263.html 创建django的model时,有DateTimeField.DateField和TimeFiel ...
- 敏捷开发-代码提交流程& 安装gerrit
- 栈的实现——c++
栈(stack),是一种线性存储结构,它有以下几个特点: (01) 栈中数据是按照"后进先出(LIFO, Last In First Out)"方式进出栈的. (02) 向栈中添加 ...
- 进程控制块(PCB)
用来描述和控制进程的运行的一个数据结构--进程控制块PCB(Process Control Block),是进程实体的一部分,是操作系统中最重要的记录型数据结构. PCB是进程存在的唯一标志 系统能且 ...
- Spring配置项<context:annotation-config>的解释说明
今天在闲逛CSDN论坛时,看到一位博主写的一篇关于<Spring中IOC的Annotation的实现>的文章, 于是点击进去看了下, 发现在说明中对Spring配置文件中的有些配置节点模凌 ...
- 安装vue后报错 bash: vue: command not found
今天参照之前写的vue的环境搭建一个新的项目 http://www.cnblogs.com/stella1024/p/7570884.html 安装完vue,并提示成功: $ npm install ...