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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在内网搭建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 [email protected] 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

你可能感兴趣的:(在内网搭建docker registry并使用密码鉴权的方法)