(一)生成证书
1、mkdir /certs
2、cd /certs

3、生成自签名证书

  1. sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout registry.key -out registry.crt

录入证书信息:

CN
Guangdong
shenzhen
albb
Dev
10.1.2.3
123456@qq.com

4、添加centos系统对自签名证书的信任
cat ./registry.crt >> /etc/pki/tls/certs/ca-bundle.crt
查看证书内容
openssl x509 -noout -text -in server.crt

5、允许docker私有仓库支持ip地址方式的https访问

6、修改openssl.cnf,在Redhat7或者Centos系统中,文件所在位置是/etc/pki/tls/openssl.cnf。在其中的[ v3_ca]部分,添加subjectAltName选项:

  1. [ v3_ca ]
  2. subjectAltName= IP:10.1.2.3

(二)新建docker私有仓库的用户abc
https://blog.csdn.net/shida_csdn/article/details/78435971#commentBox

(三)新建docker:用户验证+https传输

  1. docker run -d -p 443:443 --restart=always --name=registry-https-abc \
  2. -v /opt/registry-var/config/:/etc/docker/registry/ \
  3. -v /opt/registry-var/auth/:/auth/ \
  4. -e "REGISTRY_AUTH=htpasswd" \
  5. -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  6. -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  7. -v /opt/registry-var/:/var/lib/registry/ \
  8. registry

  

(四)测试登录
浏览器访问:
https://10.1.2.3:443/v2 如果弹出提示用户名和密码的输入,证明搭建成功

================================================

以下方法不推荐,仅作参考。

================================================

1、创建密码文件(用于docker私有仓库的用户登录认证)

参考:

搭建docker私有仓库2(带用户验证)

https://blog.csdn.net/shida_csdn/article/details/78435971#commentBox

2、创建证书文件(用于https的加密传输)

参考:

搭建docker私有仓库(https)

https://www.cnblogs.com/andy9468/p/10736214.html

3、创建私有仓库容器(加密和用户验证)

docker run -d -p 5000:5000 --restart=always --name registry-https5000account \
-v /opt/registry-var/auth/:/auth/ \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v /certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry

以这句为准:

  1. docker run -d -p 443:443 --restart=always --name=registry-https-abc \
  2. -v /opt/registry-var/config/:/etc/docker/registry/ \
  3. -v /opt/registry-var/auth/:/auth/ \
  4. -e "REGISTRY_AUTH=htpasswd" \
  5. -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  6. -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  7. -v /opt/registry-var/:/var/lib/registry/ \
  8. -v /certs:/certs \
  9. -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
  10. -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
  11. -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
  12. registry

说明:

运行registry并指定参数
包括了用户密码文件和CA书位置。
--restart=always 始终自动重启

--name registry-https5000account   指定容器的别名

-v /opt/registry-var/auth/:/auth/   指定密码文件位置

-v /certs:/certs   指定证书位置

4、验证服务:

方法一:docker  ps -a

方法二:docker login https://你的ip:5000/

参考:https://www.jianshu.com/p/0f8f86f5a961

Docker 私有仓库建立(加密和用户验证)的更多相关文章

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

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

  2. Docker私有仓库与Harbor部署使用

    Docker私有仓库与Harbor部署使用 目录 Docker私有仓库与Harbor部署使用 一.本地私有仓库 1. 下载registry镜像 2. 在daemon.json文件中添加私有镜像仓库地址 ...

  3. Docker容器化【Dockerfile编写&&搭建与使用Docker私有仓库】

    # Docker 学习目标: 掌握Docker基础知识,能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用 ...

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

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

  5. 搭建docker私有仓库(https)

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

  6. 搭建docker私有仓库

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

  7. Docker私有仓库registry的搭建及使用

    前言 由于Docker Hub公共仓库很多时候使用这并不是很方便,大分部因为网络的问题可能拉取的时候会很慢或者拉取不到,所以搭建一个本地的私有仓库. 准备 由于此篇文章是在Kubernetes集群安装 ...

  8. 03搭建docker私有仓库

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

  9. 2.使用nexus3配置docker私有仓库

    1,配置走起 1,创建blob存储 登陆之后,先创建一个用于存储镜像的空间. 定义一个name,下边的内容会自动补全. 然后保存. 注意:实际生产中使用,建议服务器存储500G或以上. 2,创建一个h ...

随机推荐

  1. python学习记录20181207

    1.python中函数指针的用法 直接把函数名赋值给变量,不需要加上()和形参 如: def add(num1,num2): return num1+num2 fun = add 2.打印输出列表需要 ...

  2. Java面试题复习笔记(框架)

    1.什么是框架? 为解决一个开放性问题而设计的具有一定约束性的支撑结构,再次结构上可以根据具体问题扩展,安插更多的组成部分,从而更迅速和方便地构建完整解决问题的方案. 2.MVC模式? 用一种业务逻辑 ...

  3. vsCode 代码不高亮显示的问题

    安装Vetur插件 1.点击左侧菜单的扩展-->搜索Vetur-->点击安装-->安装完成重启vsCode  --->

  4. gflags_static.lib 无法解析的外部符号 __imp__PathMatchSpec

    在用gflags库时生成提示 无法解析的外部符号 __imp__PathMatchSpec   解决办法:Add "shlwapi.lib" to "Project - ...

  5. 必须知道的Linux内核常识详解

    一.内核功能.内核发行版 1.到底什么是操作系统 (1)linux.windows.android.ucos就是操作系统: (2)操作系统本质上是一个程序,由很多个源文件构成,需要编译连接成操作系统程 ...

  6. spark Transformations算子

    在java中,RDD分为javaRDDs和javaPairRDDs.下面分两大类来进行. 都必须要进行的一步. SparkConf conf = new SparkConf().setMaster(& ...

  7. centos没有可用软件包 libgtk2

    在编写一个C程序,使用基于文本的终端图形编程库(curses)或图形界面(QT/GTK),分窗口显示三个并发进程的运行,因为centos并未安装gtk,所以运行命令行安装gtksudo yum -y ...

  8. flask狗书

    Models.py #coding:utf8 fromflaskimportFlask fromflask_sqlalchemyimportSQLAlchemy app=Flask(__name__) ...

  9. PostgreSQL自学笔记:9 索引

    9 索引 9.1 索引简介 索引是对数据库表中一列或多列值进行排序的一种结构,使用 索引可提高数据库中特定数据的查询速度 9.1.1 索引的含义和特点 索引是一种单独的.存储在磁盘上的数据库结构,他们 ...

  10. win10,vs2017+mpi v10.0 安装与入门 (详细)

    一.安装visual studio 2017  下载 地址:https://visualstudio.microsoft.com/zh-hans/vs/ 安装 我们再选择自己想要安装的东西,确认好后点 ...