文档章节

docker registry-v2 搭建私有仓库

m
 modprobe
发布于 2016/11/08 09:57
字数 605
阅读 226
收藏 1

参考官方文档:https://docs.docker.com/registry/deploying/

参考 :http://www.tuicool.com/articles/6jEJZj

 

本例子使用两台centos7虚拟机作为测试
node0:192.168.56.101
node1:192.168.56.102
 
使用域名搭建https的私有仓库
 
1、node1作为私服服务器 配置 node0 node1 和主机的hosts映射
192.168.56.102 lhdocker.com
 
既然使用https,那么我们需要生成证书,本文讲解的是使用openssl自签名证 书,当然也可以使用诸如 Let’s Encrypt 等工具生成证书,首先在node1机 器上生成key:
 
mkdir -p ~/registry/certs
cd ~/registry/certs
openssl genrsa -out lhdocker.com.key 2048

 

生成密钥文件:
 
openssl req -newkey rsa:4096 -nodes -sha256 -keyout lhdocker.com.key -x509 -days 365 -out lhdocker.com.crt
输入信息
Country Name (2 letter code) [XX]:86
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Changping
Organization Name (eg, company) [Default Company Ltd]:modprobe
Organizational Unit Name (eg, section) []:modprobe
Common Name (eg, your name or your server's hostname) []:lhdocker.com
Email Address []:xxxxx@xxx.com
 
这样自签名证书就制作完成了。
由于是自签名证书,默认是不受Docker信任的,故而需要将证书添加到Docker 的根证书中,Docker在CentOS 7中,证书存放路径是 :
 
node1 端:
mkdir -p /etc/docker/certs.d/lhdocker.com
cp lhdocker.com.crt /etc/docker/certs.d/lhdocker.com/
 
node0端:
scp root@lhdocker.com:/etc/docker/certs.d/lhdocker.com/lhdocker.com.crt /etc/docker/certs.d/lhdocker.com/
 
拉取registry2 镜像
docker pull registry:2

 

启动registry2容器

docker run -d -p 443:5000 --restart=always --name registry \
  -v `pwd`/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/lhdocker.com.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/lhdocker.com.key \
  registry:2

 

测试一下

docker pull kitematic/hello-world-nginx
docker tag kitematic/hello-world-nginx lhdocker.com/kitematic/hello-world-nginx
docker push lhdocker.com/kitematic/hello-world-nginx

如果成功,你会看到如下输出

 

在node0上进行测试

docker pull lhdocker.com/kitematic/hello-world-nginx

到这里我们的docker私有仓库就搭建完成了

 

 

这是没有认证方式的启动方式

在很多场景下,我们需要用户登录后才能访问私有仓库,那么我们可以如下操作: 建立在上文生成证书,同时重启过Docker服务的前提下,我们讲解一下如何配置: 

cd ~/registry/
mkdir auth
docker run --entrypoint htpasswd registry:2.2 -Bbn lihong 1233 > auth/htpasswd;

 

启动registry容器的方式有一点区别

docker run -d -p 443:5000 --restart=always --name registry \
  -v `pwd`/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -v `pwd`/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/lhdocker.com.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/lhdocker.com.key \
  registry:2

 

在执行push操作之前需要登录一下

docker login lhdocker.com

输入上面的用户和密码就可以了

 

 

 如果要停止registry服务,执行下面的命令就行了
docker stop registry && docker rm -v registry

 

本文转载自:http://www.cnblogs.com/modprobe/p/6026033.html

共有 人打赏支持
m
粉丝 1
博文 35
码字总数 0
作品 0
Docker学习笔记 — Docker私有仓库搭建

和Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。 使用私有仓库有许多优点: 节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下...

adson_sunflower
2017/02/06
0
0
Docker技术实践——高级篇

1.1 搭建私有仓库 我们需要看下如何搭建容器的私有仓库: Mavan的管理一样,Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库。 私有仓库有许多优点: 1.节省网络...

闪亮的蛤蟆
04/18
0
0
搭建私有Docker仓库-笔记3

道理很简单,我们在使用Docker的时候,经常需要使用到docker pull命令从docker hub拉取我们需要的镜像,进行操作。这样其实有利也有弊,docker hub是官方维护的公用仓库,也是最大、最全的d...

张晨chat
08/19
0
0
Docker私有仓库Registry搭建(localhost 可行但跨主机有问题)

关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候,我们的使用场景需要我们拥有一个私有的...

山疯
2016/02/28
223
1
Docker | 第六章:构建私有仓库

前言 上一章节,讲解了利用和进行自定义镜像的构建。大部分时候,公司运维或者实施部门在构建了符合公司业务的镜像环境后,一般上不会上传到公共资源库的。这就需要自己搭建一个私有仓库,来...

oKong
08/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

TypeScript基础入门之JSX(二)

转发 TypeScript基础入门之JSX(二) 属性类型检查 键入检查属性的第一步是确定元素属性类型。 内在元素和基于价值的元素之间略有不同。 对于内部元素,它是JSX.IntrinsicElements上的属性类型...

durban
今天
1
0
AVA中CAS-ABA的问题解决方案AtomicStampedReference

了解CAS(Compare-And-Swap) CAS即对比交换,它在保证数据原子性的前提下尽可能的减少了锁的使用,很多编程语言或者系统实现上都大量的使用了CAS。 JAVA中CAS的实现 JAVA中的cas主要使用的是...

码代码的小司机
今天
2
0
Android JNI开发系列(十三) JNI异常处理

JNI 异常处理 JNI异常与JAVA处理异常的区别 JAVA 有异常处理机制,而JNI没有 如果JAVA中异常没有捕获,后面的代码不会执行,JNI会执行 JAVA编译时的异常,是在方法显示的声明了某一个异常,编...

蔡小鹏
今天
2
0
简单介绍Java 的JAR包、EAR包、WAR包区别

WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。War专用于Web方面。大部分的JAVA WEB工程,都是打成WAR包进行发布的。 War是...

Linux就该这么学
今天
3
0
Qt那些事0.0.7

在帮助文档(Overview - QML and C++ Integration)中随缘遇到一张图,是关于C++对象与QML整合介绍的,值得标记下来,虽然大部分功能也有所涉猎,但是还是留个记号,万一哪天我失忆了还想写Q...

Ev4n
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部