1、修改openssl.cnf,支持IP地址方式,HTTPS访问
在Redhat7或者Centos系统中,文件所在位置是/etc/pki/tls/openssl.cnf。在其中的[ v3_ca]部分,添加subjectAltName选项:

[ v3_ca ]
subjectAltName= IP:129.144.150.111

  

2、生成证书
创建一个目录: /certs
然后执行:

openssl req -newkey rsa:2048 -nodes -keyout /certs/domain.key -x509 -days 365 -out /certs/domain.crt

  

Common Name (eg, your name or your server'shostname) []:129.144.150.111
执行成功后会生成:domain.key 和domain.crt 两个文件

3、COPY证书到docker系统中
使用Docker Registry的Docker机需要将domain.crt拷贝到 /etc/docker/certs.d/[docker_registry_domain:端口或者IP:端口]/ca.crt,

mkdir -p /etc/docker/certs.d/129.144.150.111:5000
cp /certs/domain.crt /etc/docker/certs.d/129.144.150.111:5000/ca.crt

  

4、将domain.crt内容放入系统的CA bundle文件当中,使操作系统信任我们的自签名证书。
CentOS 6 / 7或者REDHAT中bundle文件的位置在/etc/pki/tls/certs/ca-bundle.crt:

cat /certs/domain.crt >>/etc/pki/tls/certs/ca-bundle.crt

  

Ubuntu/Debian Bundle文件地址/etc/ssl/certs/ca-certificates.crt

cat /certs/domain.crt >> /etc/ssl/certs/ca-certificates.crt

  

注意,如果之前已经有cat过同样的IP, 需要到ca-bundle.crt中把它删除,再做cat操作。否则后面PUSH时会报:

Get https://129.144.150.111:5000/v1/_ping:x509: certificate signed by unknown authority

5、重启docker

systemctl restart docker

  

6、创建启动docker容器:创建一个运行的docker私有仓库容器,端口5000,https访问

docker run -d -p 5000:5000 --name=registry-https5000 -v /certs/:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key registry

  

7、验证测试
确认HTTPS OK:

curl -k https://129.144.150.111:5000/v2

  

或者直接浏览器访问 (防火墙要开放5000端口)
https://129.144.150.111:5000/v2 显示{} 表示正常
https://129.204.75.73:5000/v2/_catalog 显示{"repositories":[]} 表示正常

参考:

https://blog.csdn.net/xcjing/article/details/70238273/

https://blog.csdn.net/zsd498537806/article/details/79290732

搭建docker私有仓库(https)的更多相关文章

  1. 搭建docker私有仓库

    保存镜像的地方成为仓库(registry).目前有2种仓库:公共仓库和私有仓库. 最方便的是使用公共仓库上传和下载镜像,下载不需要注册,上传需要到公共仓库注册.公共仓库网站:https://hub.d ...

  2. docker私有仓库-https+nginx

    一.概述 使用的是registry-2.4版本,因为在这个版本开始提供了garbage-collect,能够清理掉blobs,2.1开始提供了api的删除功能,但是只是删除的index并没有释放掉磁盘 ...

  3. windows 环境下搭建docker私有仓库

    windows 环境下搭建docker私有仓库 1.在公用仓库中pull仓库镜像 docker pull regitry 2.启动仓库镜像 //-d意思是后台运行,-p是做端口映射,这里是将本地的50 ...

  4. 一步步搭建docker私有仓库并从私有仓库中下载镜像

    一步步搭建docker私有仓库 #下载镜像 docker pull registry#查看镜像 docker images #运行私有仓库,指定端口和数据卷 docker run -d -p : -v ...

  5. 03搭建docker私有仓库

    搭建docker私仓,可以使用docker官方提供的registry镜像.该镜像目前有2.0,2.3和2.3.1版本.它只与1.6.0以上版本的docker兼容.搭建私仓的步骤如下: 一:无代理.无认 ...

  6. CentOS7搭建Docker私有仓库----Docker

    有时候使用Docker Hub这样的公共仓库可能不方便,这种情况下用户可以使用registry创建一个本地仓库供私人使用,这点跟Maven的管理类似.目前Docker Registry已经升级到了v2 ...

  7. 搭建docker私有仓库,建立k8s集群

    服务器IP角色分布 192.168.5.2 etcd server 192.168.5.2 kubernetes master 192.168.5.3 kubernetes node 192.168. ...

  8. 手把手教你搭建Docker私有仓库

    章节一:centos7 docker安装和使用_入门教程 章节二:使用docker部署Asp.net core web应用程序 有了前面的基础,接下来的操作就比较简单了.先准备两台虚拟机,两台机器上都 ...

  9. Docker自学纪实(六)搭建docker私有仓库

    docker的镜像仓库分两种:一种是从官方公有仓库拉取:还有就是自己搭建私有仓库.官方的镜像仓库是面对整个应用市场的:私有仓库一般用于公司内部,就是公司项目自身所需的镜像.搭建私有仓库有什么好处?私有 ...

随机推荐

  1. Python-Django 模型层-多表查询

    多表操作 基于对象的跨表查询(多次查询) 一对一: -正向查询按字段 -反向查询按表名小写 一对多: -正向查询按字段(正向查询一定会查出一个来) -反向查询按表名小写_set.all()(返回结果是 ...

  2. Java面试题复习笔记(前端)

    1.Html,CSS,Jsp在网页开发中的定位? Html——定义网页结构(超文本标记语言) CSS——层叠样式表,用来美化界面 Jsp——主要用来验证表单,做动态交互(Ajax) 2.介绍Ajax? ...

  3. linux服务器配置pyspider出现Could not run curl-config 的解决方式

    Downloading/unpacking pycurl (from pyspider) Downloading pycurl-7.19.5.1.tar.gz (142kB): 142kB downl ...

  4. Intellij Idea调试java文件时 怎么跳过class文件?

    Intellij Idea调试时 java文件时,遇到class文件时它也会反编译该文件,并跳入该class文件内一条条语句执行.这让我烦透了,怎么跳过class文件,继续调试啊? SETTINGS- ...

  5. IOC应用之 Ninject

    什么是Ninject Ninject是一套.Net平台下的高效,超轻量级的依赖注入库.它可以帮助你实现应用程序的松耦合,高内聚,同时也能很灵活的把它们进行组合在一起.借助与Ninject的帮助,代码的 ...

  6. c++中字符串的反转

    1.对于用char定义的字符串:使用string.h中的strrev函数 #include <iostream> #include <cstring> using namesp ...

  7. debian安装mongoDB

    wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz tar zxf mongodb-linux-i686-1.8.2.t ...

  8. Jboss getshell

     Jboss 的安装需要 JDK 环境 JDK+JBOSS 包  初始环境配置 系统变量名        变量值 PATH                  %JAVA_HOME%\bin:%JAVA ...

  9. 数据挖掘算法——Apriori算法

    Apriori算法  首先,Apriori算法是关联规则挖掘中很基础也很经典的一个算法. 转载来自:链接:https://www.jianshu.com/p/26d61b83492e 所以做如下补充: ...

  10. python移植环境

    如果整理材料的时候或者给别人共享代码的时候,除了使用docker外,也可以使用pip或者conda生成依赖项文件,然后在其他机器上将该依赖项一一安装就可以了. 但是有很多版本的依赖导致使用pip总是安 ...