如何为我们自己的docker私有注册表设置用户名和密码?

时间:2018-04-26 01:43:06

标签: docker docker-compose dockerfile

我能够使用$docker container run -itd --publish 5000:5000 registry运行存储库但是,当我将图像拉到或推送到该存储库时,我不会被要求输入用户名和密码。

如果我们想要使用该存储库中的图像,如何设置我们自己的docker私有注册表的用户名和密码以及如何在Dockerfile和docker-compose中使用它们?

1 个答案:

答案 0 :(得分:1)

  

如何为我们自己的docker私有注册表设置用户名和密码?

在DTR中有几种方法可以实现基本身份验证。最简单的方法是将DTR置于Web代理之后,并使用Web代理提供的基本身份验证机制。

直接在DTR中启用基本身份验证?这就是。

  1. 创建一个包含用户名和密码的密码文件:mkdir auth && docker run --entrypoint htpasswd registry:2 -Bbn your-username your-password > auth/htpasswd
  2. 停止DTR:docker container stop registry
  3. 使用基本身份验证再次启动DTR,请参阅以下命令。
  4. 注意:您必须先配置TLS才能进行身份验证。

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

    当我们想要使用该存储库中的图像时如何使用它们?

    在提取图像之前,首先需要登录DTR:

    docker login your-domain.com:5000
    

    并从第一步填写用户名和密码。