docker-registry2(docker-distribution)环境搭建
来源:互联网 发布:淘宝拒收可以退款吗 编辑:程序博客网 时间:2024/06/05 05:43
前面一篇博客在介绍京东speedy安装时顺带介绍了docker-regisry1的安装,但是registry1是python语言写的,而现在registry2版本即docker distribution更加安全和快速,并且是用go语言写的,docker1.6及其以上版本已经不再支持registry:1,本文就介绍下怎么在本地安装运行distribution。
首先介绍一下环境,我是在centos7上安装的,ip地址是192.168.1.104。另外,要保证golang语言的版本在1.5以上,不然提示一堆错误,比如crypto中的sha512错误。我设置的环境变量中GOPATH=/root/goprojects,GOROOT=/usr/local/go
第一步:执行命令 mkdir -p /var/lib/registry,创建存储镜像文件的目录
第二步:执行go get github.com/docker/distribution/cmd/registry下载并安装distribution,按照github官方给的文档,在该步骤执行后就能完成安装,但是distribution中用的的包并不能正常下载,比如安装过程中会提示recognize import golang.org/x/crypto/bcrypt/.解决办法是到github上下载crypto项目,然后再$GOPATH/src/下建立golang.org/x/目录并把crypto项目解压到该目录下,依次这样做直到成功安装。
第三步:执行$GOPATH/bin/registry --version会显示版本
执行$GOPATH/bin/registry $GOPATH/src/github.com/docker/distribution/cmd/registry/config-example.yml运行registry
注意:执行push命令的机器docker版本应该大于1.6不然会提示错误
除此之外,执行docker push命令时还有可能报如下错误:
The push refers to a repository [192.168.1.104:5000/base] (len: 1)
unable to ping registry endpoint https://192.168.1.104:5000/v0/
v2 ping attempt failed with error: Get https://192.168.1.104:5000/v2/: tls: oversized record received with length 20527
v1 ping attempt failed with error: Get https://192.168.1.104:5000/v1/_ping: tls: oversized record received with length 20527
这个是因为验证的原因,简单地处理方式只需在执行push命令的机器上执行service docker stop停止docker服务,然后执行/usr/bin/docker daemon --insecure-registry=192.168.1.104:5000,重新启动,然后就能重新push成功了。该方式只是简单策略,真正解决该问题需要搞清楚registry:2的验证方式,这个我以后要深入研究。
这是第一次安装的过程,安装完成后可能自己会更改代码,然后需要重复性的编译,需要如下配置:
首先,进入$GOPATH/src/github.com/docker/distribution目录,该目录中有Makefile文件,但是直接执行make命令会报如下错误:
/bin/sh: golint: command not found
+ build
registry/storage/driver/testsuites/testsuites.go:19:2: cannot find package "gopkg.in/check.v1" in any of:
解决方式是下载安装godep和golint,命令如下:go get github.com/tools/godep github.com/golang/lint/golint,但同样会出现
package golang.org/x/tools/go/gcimporter: unrecognized import path "golang.org/x/tools/go/gcimporter"
package golang.org/x/tools/go/types: unrecognized import path "golang.org/x/tools/go/types"
出现这种错误的原因是types、gcimporter、exact包版本太老或者不存在,根本原因还是因为长城防火墙的原因,将golang.org网站墙了,go get命令不能下载依赖包,解决的方法是自己翻墙去golang.org/x/tools去下载,网站会跳转到https://go.googlesource.com/tools/+/master/go/,然后可以下载需要的包然后放到对应目录下了。
并不是所有的人都方便翻墙,在这里我把下载好的三个包types、gcimporter、exact分别存到csdn资源上,以下是地址,大家去下吧:
gcimporter: http://download.csdn.net/detail/yuanfang_way/9245579
exact: http://download.csdn.net/detail/yuanfang_way/9245563
types: http://download.csdn.net/detail/yuanfang_way/9245607
至此,可以编译成功了。
- docker-registry2(docker-distribution)环境搭建
- docker registry2 仓库搭建与使用
- docker registry2 安装注意事项
- ubuntu 16.04 -- docker建立 private registry2
- docker compose环境搭建
- docker环境搭建
- docker 搭建LNMP环境
- Docker搭建环境
- Centos搭建docker环境
- 搭建本地Docker环境
- docker环境搭建
- 搭建 Docker 环境入门
- Docker 搭建开发环境
- Docker 搭建开发环境
- docker环境搭建
- 【docker】docker环境搭建及使用
- docker distribution目录结构
- 搭建docker-registry开发环境
- 【IOS 开发学习总结-OC-43】★ios开发——UIButton(按钮)与 UISwitch(开关按钮)
- Javascript获取属性的值以及比较值
- hdoj Conturbatio 5480 (数组模拟+技巧) 好题
- npm 安装 appium 更换源的方式安装
- [每日一答] [20151011] 如何在Python2.7版本中安装pip程序呢?
- docker-registry2(docker-distribution)环境搭建
- POJ - 1426 Find The Multiple(15.10.10 搜索专题)bfs
- Linux内核工程导论——内核为何使用C语言
- android studio导入os库
- HDU 4770 Lights Against Dudely(暴力枚举) 2013杭州现场赛
- OpenCv:Mat矩阵的初始化
- matlab调用mysql
- 互信息 Mutual Information
- python 查询小程序