在内网搭建docker registry并使用密码鉴权的方法

本文详细介绍如何在内网环境中部署Docker Registry,并通过自签名证书实现TLS加密及使用密码文件进行鉴权的过程。包括服务端的搭建步骤、客户端的配置方法及验证流程。

在内网搭建docker registry并使用密码鉴权的方法

建立日期:2016年5月2日。
最后编辑:2016年6月8日。

1 说明。
  执行docker run registry:2命令的设备称为服务端。执行docker pull或docker push命令,向服务端推送或拉取镜像的设备称为客户端。

2 服务端操作。

2.1 安装docker和docker-registry:2,启动docker守护进程。
  (略)

2.2 创建工作目录。
  mkdir -p /data/DockerRegistry/{Data,Cert,Auth}

2.3 生成TLS使用的自签名证书。
  cd /data/DockerRegistry/Cert
  domain=MyDockerRegistry.com
  openssl req -nodes \
    -subj "/C=CN/ST=Guangdong/L=Shenzhen/CN=$domain" \
    -newkey rsa:4096 -keyout $domain.key -out $domain.csr
  openssl x509 -req -days 3650 -in $domain.csr -signkey $domain.key -out $domain.crt

2.4 生成鉴权使用的密码文件。
  docker run --name once --entrypoint=htpasswd registry:2 -Bbn TestUser TestPassword > /Data/Registry/Auth/Htpasswd
  docker rm once

2.5 启动docker registry:2。
  docker run -d -p 5000:5000 --restart=always \
  --volume=/data/DockerRegistry/Data:/var/lib/registry \
  --volume=/data/DockerRegistry/Cert:/Cert \
  --volume=/data/DockerRegistry/Auth:/Auth \
  --env="REGISTRY_AUTH=htpasswd" \
  --env="REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  --env="REGISTRY_AUTH_HTPASSWD_PATH=/Auth/Htpasswd" \
  --env="REGISTRY_HTTP_TLS_CERTIFICATE=/Cert/MyDockerRegistry.com.crt" \
  --env="REGISTRY_HTTP_TLS_KEY=/Cert/MyDockerRegistry.com.key" \
  --name=registry \
  registry:2

3 客户端操作。

3.1 配置host文件,让客户端可以通过域名访问服务端。
  echo "\n127.0.0.1 MyDockerRegistry.com\n" >> /etc/hosts

3.2 安装服务端证书。
  sudo mkdir -p /etc/docker/certs.d/MyDockerRegistry.com
  sudo scp SERVER_IP:/data/DockerRegistry/Cert/MyDockerRegistry.com.cert /etc/docker/certs.d/MyDockerRegistry.com/ca.crt

3.3 启动docker守护进程。

3.4 在docker registry客户端设备上登录docker registry。
  docker login -u TestUser -p TestPassword -e foo@bar.com MyDockerRegistry.com:5000

3.5 查看docker registry中的镜像。
  sudo curl https://MyDockerRegistry.com:5000/v2/_catalog -u TestUser:TestPassword --cacert /etc/docker/certs.d/MyDockerRegistry.com:5000/ca.crt

转载于:https://my.oschina.net/u/131191/blog/688724

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值