且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

无法登陆docker私人仓库

更新时间:2023-09-12 19:55:58

执行以下步骤对私人证书进行docker注册:


  1. 使用以下命令生成私有SSL证书。这将创建certs文件夹与两个文件domain.crt,domain.key

     
    openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs / domain。 key -x509 -days 365 -out certs / domain.crt


  2. 使用以下命令启动docker注册表:

     
    docker run -d -p 5000:5000 --restart = always --name注册表\
    -v`pwd` / certs:/ certs \
    -e REGISTRY_HTTP_TLS_CERTIFICATE = / certs / domain.crt \
    -e REGISTRY_HTTP_TLS_KEY = / certs / domain.key \
    注册表:2


  3. 在另一台要拉出图像的机器上,将

     certs / domain.crt 

    文件复制到

     / etc /docker/certs.d/<<DockerRegistryServerHostname>>:< DockerRegistryPort>> /ca.crt 

    确保证书文件的名称是ca.crt(不是域)。 crt)。



    例如,如果docker注册表IP地址是docker.registry,并且端口是5000,那么文件夹名称将是

     / etc / docker / ce rts.d / porter.registry:5000 / 


  4. 现在运行docker pull命令。你不应该面对任何问题。



I configured insecure registry by self singed certificate.After providing user name and password , getting error message as " Error response from daemon: Get https://ip address:5000/v1/users/: x509: certificate signed by unknown authority".

Execute following steps to docker registry with private certificates:

  1. Generate private SSL Certificate with following command. This will create certs folder with two file domain.crt, domain.key
    openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key  -x509 -days 365 -out certs/domain.crt
    

  2. Start docker registry with following command:
    docker run -d -p 5000:5000 --restart=always --name registry \
    -v `pwd`/certs:/certs \
    -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
    -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
    registry:2
    

  3. On another machine where you want to pull the images, copy

    certs/domain.crt

    file to

    /etc/docker/certs.d/<<DockerRegistryServerHostname>>:<<DockerRegistryPort>>/ca.crt

    Make sure the name of certificate file is ca.crt (not domain.crt).

    For example, if docker registry IP address is docker.registry and port is 5000 then folder name will be

    /etc/docker/certs.d/docker.registry:5000/

  4. Now run docker pull command. You should not face any issue.