Docker私有仓库搭载教程

Docker私有仓库部署
本文详细介绍了如何在CentOS7上部署Docker私有仓库的过程。包括安装所需软件、生成自签名证书、配置TLS、构建及运行Registry镜像等步骤,并解决了SSL认证问题。

#Docker私有仓库搭载教程

最近领导叫我搭一个公司内部使用的镜像库,在网上找了各种资料,遇到了不少问题,东拼西凑最后可算是可以了。把自己建仓库的过程总结一下,分享一下,帮助一下和我一样的新手

本教程所有内容均基于CentOS 7, 使用其他发行版的朋友,注意一下几个文件的位置,其他一般都ok

##下载 source 并生成 certificates

  1. 安装 opensslgit

     # yum install -y openssl git
    
  2. 修改 openssl 配置文件 openssl.cnf (自己在机子上全局搜索一下吧,不同的系统不一样的)

    添加 subjectAltName = IP:[hostip][ v3_ca ] 标签下( hostip 是机子的ip)

         ...
         [ v3_ca]
         subjectAltName = IP:[hostip]
         ...
    
  3. 下载 Registry 源码

     # git clone https://github.com/docker/distribution.git ./distribution
    
  4. 进入 distribution 目录

     # cd distribution
    
  5. 新建 certs 子目录

     # mkdir certs
    
  6. 使用SSL生成自签名证书

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

此命令将提示你回答一些基本信息,用于创建证书,可选择不填

可以把domain换成你想要的名字

当你构建这个 Container 时,certs 目录及其内容也会自动被复制

##将 TLS 加入配置

  1. 编辑 ./cmd/registry/config-dev.yml 文件(具体要视Dockerfile而定,旧一点的 Registry 版本也会是config.yml)

     # vi ./cmd/registry/config-dev.yml
    
  2. 定位到 http 区块

     http:
     	addr: :5000
     	debug:
     	addr: localhost:5001
     	headers:
     		X-Content-Type-Options: [nosniff]
    
  3. 给服务器的自签名证书新增一个 tls 区块

     http:
     	addr: :5000
     	debug:
     	addr: localhost:5001
     	headers:
     		X-Content-Type-Options: [nosniff]
     	tls:
     		certificate: /go/src/github.com/docker/distribution/certs/Arges.crt
     		key: /go/src/github.com/docker/distribution/certs/Arges.key
    
  4. 保存关闭文件

##构建并运行 Registry 镜像

  1. 构建你的 Registry 镜像

     # docker build . -t secure_registry
    
  2. 运行镜像

     # docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /opt/data/registry:/tmp/registry  -p 5000:5000 secure_registry
    

##解决ssl认证问题

certs 文件夹下 *.crt 文件发送给要推送镜像的主机

domain.crt 加入到 /etc/pki/tls/certs/ca-bundle.crt 内 (和系统有关,不一定在这个位置,不确定的话就搜索一下)

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

重启docker

# systemctl restart docker

大致就这样了,有什么问题尽管提问,虽然我不一定会

参考资料: 部署 Docker Registry 服务搭建docker-registry时使用自签名ssl证书认证问题

转载于:https://my.oschina.net/u/2259447/blog/761211

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值