搭建docker私有仓库(https)
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":[]} 表示正常
参考:
相关文章
- pycharm 使用docker 配置环境「建议收藏」
- Docker: Alpine Linux升级且安装openssh导致构建凉凉排查修正
- Docker实践之07-数据管理
- docker基础:私库系列:再探Harbor:(4) https方式的私库管理
- docker的常用命令汇总_Docker命令
- docker部署redis哨兵集群_redis部署安装
- 两小时 Docker 速成 - Getting Started
- Docker离线安装教程「建议收藏」
- Docker - docker-compose方式搭建高效的开发环境
- 影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入
- 使用 Docker 和 Traefik 搭建 Vault
- 【Docker】使用docker安装部署NextCloud私人网盘
- Docker查看本地所有的镜像命令(docker images)
- 「 【Docker】docker的基础使用介绍(小白如何使用docker) 」
- 【Docker 系列】docker 学习 一,Docker的安装使用及Docker的基本工作原理
- 【Docker 系列】docker 学习 五,容器数据卷
- 【Docker 系列】docker 学习六,DockerFile
- 【Docker 系列】docker 学习九,Compose 内容编排官网初步体验
- PHP Docker镜像如何开启拓展 - wuuconix's blog
- Docker设置容器开机自启
- 【教程】全流程Ubuntu安装Docker版Gitlab并初始化管理员
- Docker GitLab镜像部署详解架构师
- springboot整合docker部署(两种构建Docker镜像方式)详解编程语言
- Linux安全协议:借助HTTPS保障信息安全(linux支持https)
- Docker 核心原理
- Docker搭建快速、稳定的Redis集群(dockerredis)
- docker managed volume – 每天5分钟玩转 Docker 容器技术(40)
- 运行容器的最佳实践 – 每天5分钟玩转 Docker 容器技术(24)