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

3、生成自签名证书

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选项:

[ v3_ca ]
subjectAltName= IP:10.1.2.3

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

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

docker run -d -p 443:443 --restart=always --name=registry-https-abc \
-v /opt/registry-var/config/:/etc/docker/registry/ \
-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 /opt/registry-var/:/var/lib/registry/ \
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

以这句为准:

docker run -d -p 443:443 --restart=always  --name=registry-https-abc \
-v /opt/registry-var/config/:/etc/docker/registry/ \
-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 /opt/registry-var/:/var/lib/registry/ \
-v /certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
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. Linux /etc/sudoers 文件详解

    [root@test ~]# cat /etc/sudoers## Sudoers allows particular users to run various commands as## the r ...

  2. pl/sql学习(6): 引号/程序调试/列中的字符串合并/正则表达式

    有关自治事务的问题: https://www.cnblogs.com/princessd8251/p/4132649.html 我在plsql development学习中遇到的常见问题: (一) 引 ...

  3. springboot集成mybatis源码分析(一)

    本篇文章只是简单接受使用,具体源码解析请看后续文章 1.新建springboot项目,并导入mybatis的pom配置 配置数据库驱动和mybatis dependency <dependenc ...

  4. Vue使用watch监听一个对象中的属性

    问题描述 Vue提供了一个watch方法可以让使用者去监听某些data内的数据变动,触发相应的方法,比如 queryData: { name: '', creator: '', selectedSta ...

  5. 【Android】activity-alias的使用

    activity-alias是android里为了重复使用Activity而设计的. 当在Activity的onCreate()方法里,执行getIntent().getComponent().get ...

  6. kvm虚拟化1

    计算机的五大组成部分: 运算器,控制器,存储器,输入,输出 虚拟化是对cpu   ,内存,,磁盘, 网络,IO 的虚拟 cpu的虚拟 以时间分片形式进行,这样使得cpu可以运行多个进程 内存进行了空间 ...

  7. .net core 设置访问静态资源

  8. 带URL的XML解析方式

    XmlDocument xml = new XmlDocument(); xml.LoadXml(responseString); XmlNode root = xml.DocumentElement ...

  9. [wordpress]更新插件时,免去FTP操作

    我们先进入服务器 先找到wordpress配置文件wp-config.php,用locate命令寻找文件所在路径. sudo updatedb locate wp-config.php 然后cd到改路 ...

  10. BZOJ.5110.[CodePlus2017]Yazid 的新生舞会(线段树/树状数组/分治)

    LOJ BZOJ 洛谷 又来发良心题解啦 \(Description\) 给定一个序列\(A_i\).求有多少个子区间,满足该区间众数出现次数大于区间长度的一半. \(n\leq5\times10^5 ...