如何使用docker v1存储库

时间:2016-02-23 06:30:11

标签: docker artifactory

我使用Artifactory存储docker图像。 Artifactory设置使用v1存储库来存储图像。当他从一台Linux机器上工作时,我能够从Artifactory拉出并推动图像。但是当我在我的Windows笔记本电脑上工作时,如果我试图从Artifactory中提取图像,它会给我以下错误

akash@AKASH-WS01 MINGW64 ~
$ docker pull mydocker.abc.com:5903/ubuntu
Using default tag: latest
Error response from daemon: unknown: Unsupported docker v2 repository request for 'demo-docker'

我使用.dockercfg文件进行身份验证并将信息存储到其中。 "演示搬运工"是用户

为什么当mydocker.abc.com:5903/ubuntu在v1上时,docker pull命令正在使用v2存储库。有没有办法让docker pull使用v1

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我调整了我的nginx以解决问题:

Artifactory Version:4.15.0 Docker版本:1.12.0

  1. 停止Nginx服务(service nginx stop
  2. 在nginx(/etc/nginx/sites-enabled/default.conf)中打开您的conf文件并更改其中的以下行:
  3.   

    重写^ /(v1 | v2)/(。*)/ api / docker / build-images / $ 1 / $ 2;

      

    重写^ /(v2)/(。*)/ api / docker / build-images / $ 1 / $ 2;

    以下示例:

    server {
    listen 8000 ssl;server_name artifactory.corpintra.net;
    if ($http_x_forwarded_proto = '') {
        set $http_x_forwarded_proto  $scheme;
    }
    ## Application specific logs
    access_log /var/log/nginx/build-docker-access.log;
    error_log /var/log/nginx/build-docker-error.log;
    rewrite ^/(v2)/(.*) /api/docker/build-images/$1/$2;
    client_max_body_size 0;
    chunked_transfer_encoding on;
    location / {
    proxy_read_timeout  900;
    proxy_pass_header   Server;
    proxy_cookie_path ~*^/.* /;
    proxy_pass         http://localhost:8081/artifactory/;
    proxy_set_header   X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host:$server_port;
    proxy_set_header    X-Forwarded-Port  $server_port;
    proxy_set_header    X-Forwarded-Proto $http_x_forwarded_proto;
    proxy_set_header    Host              $http_host;
    proxy_set_header    X-Forwarded-For   $proxy_add_x_forwarded_for;
    }}    
    
    1. 重新启动Nginx(service nginx restart