CentOS 7 配置 docker-registry TLS 安全認證

注: 如下內容中的 「192.168.1.130」 IP 地址請自行修改成你的 Docker 宿主機的地址。node

建立 docker-registry 數據存儲目錄

mkdir -p /data/docker-registry/{auth,certs,lib}

修改 /etc/pki/tls/openssl.cnf 配置 (注: 這一步很重要, 不然後面會提示 x509 錯誤!)

[ v3_ca ]
subjectAltName = IP:192.168.1.130  # 增長此行內容

生成證書

cd /data/docker-registry/certs \
    && openssl req -newkey rsa:2048 -nodes -keyout registry_auth.key -x509 -days 365 -out registry_auth.crt

update-ca-trust extract

建立管理員 admin 密碼

docker run --entrypoint htpasswd registry:2 -Bbn admin r58eYM8wKDvV >> /data/docker-registry/auth/htpasswd

啓動容器

docker run -d -p 5000:5000 --restart=always --name docker-registry \
  -v /data/docker-registry/lib:/var/lib/registry \
  -v /data/docker-registry/auth:/auth \
  -v /data/docker-registry/certs:/certs \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry_auth.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/registry_auth.key \
  registry:2

拷貝證書

mkdir -p /etc/docker/certs.d/192.168.1.130\:5000/ \
    && cp -f /data/docker-registry/certs/registry_auth.crt /etc/docker/certs.d/192.168.1.130\:5000/ca.crt

客戶端登陸

docker login -u admin -p r58eYM8wKDvV 192.168.1.130:5000
相關文章
相關標籤/搜索