docker私有库搭建过程(Registry)
实验环境:
CentOS7 1611
Docker 1.12.6
registry 2.0
1、安装并运行registry
安装:
[root@docker01 ~]# docker pull registry
Using default tag: latest
Trying to pull repository docker.io/library/registry ...
latest: Pulling from docker.io/library/registry
79650cf9cc01: Pull complete
70ce42745103: Pull complete
77edd1a7fa4d: Pull complete
432773976ace: Pull complete
3234a47fe5a9: Pull complete
Digest: sha256:a3551c422521617e86927c3ff57e05edf086f1648f4d8524633216ca363d06c2
[root@docker01 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/busybox latest c30178c5239f 6 days ago 1.106 MB
docker.io/registry latest 9d0c4eabab4d 6 weeks ago 33.17 MB
[root@docker01 ~]#
运行:
[root@docker01 ~]# docker run -d -p 5000:5000 -v /mnt/date/registry:/var/lib/registry registry
75841a99e1fc882617bc37d088a8c80abae225cfe2842110f2049600df560a47
[root@docker01 ~]#
-d后台运行
-p指定端口
-v把registry的镜像路径/var/lib/registry映射到本机的/mnt/date/registry
检查5000端口
netstat -an | grep 5000
[root@docker01 ~]# netstat -an | grep 5000
tcp6 0 0 :::5000 :::* LISTEN
[root@docker01 ~]#
telnet 127.0.0.1 5000成功。
[root@docker01 ~]# telnet 127.0.0.1 5000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
q
HTTP/1.1 400 Bad Request
Content-Type: text/plain
Connection: close
400 Bad RequestConnection closed by foreign host.
[root@docker01 ~]#
2、添加tag标记
[root@registry ~]# docker tag busybox 10.100.50.120:5000/busybox
[root@registry ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.100.50.122:5000/busybox latest c30178c5239f 6 days ago 1.106 MB
docker.io/busybox latest c30178c5239f 6 days ago 1.106 MB
docker.io/registry latest 9d0c4eabab4d 6 weeks ago 33.17 MB
[root@registry ~]#
3、上传镜像报错
[root@registry xinetd.d]# docker push 10.100.50.120:5000/busybox
The push refers to a repository [10.100.50.122:5000/busybox]
Get https://10.100.50.120:5000/v1/_ping: http: server gave HTTP response to HTTPS client
[root@registry xinetd.d]#
解决方案:
修改/etc/sysconfig/docker文件,并重新启动docker服务。
ADD_REGISTRY='--add-registry 10.100.50.120:5000'
INSECURE_REGISTRY='--insecure-registry 10.100.50.120:5000'

4、上传镜像
[root@registry ~]# docker push 10.100.50.120:5000/busybox
The push refers to a repository [10.100.50.120:5000/busybox]
3a1dff9afffd: Pushed
latest: digest: sha256:be3c11fdba7cfe299214e46edc642e09514dbb9bbefcd0d3836c05a1e0cd0642 size: 527
[root@registry ~]#
其他坑:
坑1:
IPV4 forwording报错,但是容器运行正常。
[root@registry mnt]# docker run -d -p 5000:5000 -v /mnt/date/registry registry
WARNING: IPv4 forwarding is disabled. Networking will not work.
970e18480c47661fd2cffab9f7e0410989e62ed9d229333cb32e5727a2e88b3b
[root@registry mnt]#
解决方案:
在/etc/sysctl.conf文件中加入net.ipv4.ip_forward=1并重启网络服务。

修改后正常:
[root@registry mnt]# docker run -d -p 5000:5000 -v /mnt/date/registry registry
abbec57e5dca734689cfd953f27564156ec24e32ae6e532043309f0332653650
[root@registry mnt]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abbec57e5dca registry "/entrypoint.sh /etc/" 31 seconds ago Up 30 seconds 0.0.0.0:5000->5000/tcp compassionate_mclean
[root@registry mnt]#
坑2:
查看镜像存放位置显示404 page not found网上很多教程都是下面这个命令
[root@docker01 ~]# curl http://10.100.50.122:5000/v2/search
404 page not found
通过docker search registry发现安装的是2.0版本。

V2的命令格式如下:
http://10.100.50.122:5000/v2/_catalog[root@docker01 ~]# curl -X GET
{"repositories":["busybox","centos"]}
[root@docker01 ~]#
http://www.jianshu.com/p/fc36368b5c44文档:
docker私有库搭建过程(Registry)的更多相关文章
- docker学习---搭建Docker私有库及删除库内镜像
环境准备系统: cat /etc/redhat-release CentOS Linux release (Core) 主机两台,分别是docker私有库服务器(IP 192.168.121.121) ...
- 建立docker私有库(docker registry)(转)
建立docker私有库(docker registry) 博客分类: docker 我的目标还是无互联网安装,部署内部的docker私有库,目前docker镜像的获得还是需要互联网,将下载好的do ...
- 代理上网环境配置docker私有库
最后更新时间:2018年12月27日 Docker使用代理上网去 pull 各类 images,需要做如下配置: 创建目录: /etc/systemd/system/docker.service.d ...
- ubuntu npm 私有库搭建 (npmjs.org 官方版本)
目标 npm.xxx.com 安装和推送nodejs包 npmui.xxx.com 管理已经推送的nodejs包 安装 couchdb https://launchpad.net/~couch ...
- 基础架构之Docker私有库
由于项目要容器化,所有搭建自己的镜像库也是很有必要的,不然发到直接使用官方的镜像库,速度绝对能让你头疼,这篇文章就介绍搭建自己的镜像私有库. (一) 环境要求 Centos 7.5.1804 Doc ...
- 简体字冯|docker-安装docker私有库
原创文章,转载请注明出处. 作者:简体字丶冯; QQ:564372931 安装docker 各终端安装docker 教程 菜鸟docker教程 就挺好,本着不重复造轮子的原则就不深入了,自己学习. 如 ...
- maven私有库搭建
一.在企业中基本上都会有自己的maven私有库,主要的目的就是方便依赖包的下载.如果采用远程的方式来实现的话,很多时候会考虑网速问题.如果自己活着公司搭建的私有库,这一样在使用上面会效率更高. 二.私 ...
- [k8s]helm原理&私有库搭建&monocularui和kubeapp探究
运行最简单的charts示例 helm的2个chart例子: https://github.com/kubernetes/helm/tree/master/docs/examples/nginx he ...
- ubuntu 14.04 https 形式安装docker 私有库 harbor
起始目录/root,root 登陆后,直接在该目录进行下面的命令 下载harbor 预编译包 0.4.5 准备通过域名 reg.server.com 来访问镜像库所以需要在/etc/hosts 文件中 ...
随机推荐
- Hbuilder常用功能汇总
引用 样式表: mui.min.css Js:mui.min.js 常用功能 获取页面 var webView=plus.webview.currentWebview();//获取当前页 var we ...
- Redis学习-String
命令 描述 复杂的 返回值 SET key value [EX seconds] [PX milliseconds] [NX|XX] 将字符串值value关联到key.如果key已经持有其他值, ...
- Oracle数据库悲观锁与乐观锁详解
数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁.什么叫悲观锁呢,悲观锁顾名思义,就是对数据的冲突采取一种悲观的态度,也就是说假设数据肯定会冲突,所以在数据开始读取的时候就把数据锁定住.而乐 ...
- call,apply和bind,其实很简单
call和apply call和aplly作用完全一样,都是在特定的上下文中调用函数,或者说改变函数内部的this指向:区别仅在于接收参数的方式不同. var dog = { name: " ...
- OpenCV探索之路(六):边缘检测(canny、sobel、laplacian)
边缘检测的一般步骤: 滤波--消除噪声 增强--使边界轮廓更加明显 检测--选出边缘点 Canny算法 Canny边缘检测算法被很多人推崇为当今最优秀的边缘检测算法,所以我们第一个就介绍他. open ...
- EntityFramework6.X 之LocalDB&ConnectionString
LocalDB 面向开发人员的SQL Server Express的执行模式,它的安装将复制启动SQL Server数据库引擎所需的最少文件集且使用特定连接字符串来启动连接,它是可以创建和打开SQL ...
- 从 art-template 模版维护到动态加载的思考
自己用 art-template 有些年头了,最近在培养团队学习 art-template 使用,发现有一个痛点比较难解决. 比如有一个模版,我们可以直接写在页面中,像这样: <script i ...
- javaWeb学习总结(2)- http协议
一.http简介 1.基本介绍: (1)客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式. (2)WEB浏览器 ...
- 2D游戏开发(1)
<外星人入侵> 通过pygame,入门python的2D游戏开发过程,通过教材制作一个打外星人游戏. 1.函数 run_game() import sys import pygame de ...
- Creating beautiful charts in chinese with ggplot2
Before we start My chinese skills are poor and biased. I did learn during my internship and I contin ...