Docker 私有仓库建立(加密和用户验证)

(一)生成证书
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

 

转载于:https://www.cnblogs.com/andy9468/p/10737228.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker私有仓库是一种用于存储和管理Docker镜像的容器注册表。它允许您在内部网络中创建和共享私有镜像,以便只有授权的用户可以访问和使用它们。私有仓库提供了更好的安全性和控制,适用于企业或组织内部使用。 要设置一个私有仓库,您可以使用Docker官方提供的开源项目Docker Registry,它是一个基于HTTP API的容器注册表。您还可以选择使用其他第三方工具或云服务提供商提供的私有仓库解决方案。 以下是一些设置私有仓库的步骤: 1. 安装和配置Docker Registry:按照Docker Registry项目的文档,您可以在自己的服务器上安装和配置Docker Registry。它可以作为一个单独的容器运行,或者与其他Docker容器一起在同一主机上运行。 2. 生成SSL证书(可选):如果您需要加密传输数据并提供更高的安全性,您可以生成SSL证书并将其与Docker Registry一起使用。这通常涉及到使用自签名证书、购买第三方证书或使用免费的证书颁发机构(如Let's Encrypt)来获得SSL证书。 3. 配置访问权限:您可以根据需要配置私有仓库的访问权限。这包括添加用户认证、设置访问控制列表(ACL)或使用其他身份验证和授权机制。 4. 上传和下载镜像:一旦私有仓库设置好了,您可以使用Docker客户端将本地构建的镜像上传到仓库中,并从仓库中下载和部署镜像。 请注意,这只是一个简要的概述,真实环境中的设置可能会更加复杂和定制化。您可以根据自己的需求和情况进行进一步的研究和实施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值