如何使用 docker v1 存储库
How to use docker v1 repository
我正在使用 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 文件进行身份验证,并在其中存储了信息。 "demo-docker" 是一个用户
为什么 docker pull 命令在 mydocker.abc.com:5903/ubuntu 开启时使用 v2 版本库 v1.Is 有什么方法可以使 docker pull 到使用 v1
我遇到了同样的问题,我调整了我的nginx来解决这个问题:
Artifactory 版本:4.15.0
Docker版本:1.12.0
- 停止 Nginx 服务(
service nginx stop
)
- 在 nginx (
/etc/nginx/sites-enabled/default.conf
) 中打开您的 conf 文件并更改其中的以下行:
rewrite ^/(v1|v2)/(.*) /api/docker/build-images//;
到
rewrite ^/(v2)/(.*) /api/docker/build-images//;
示例如下:
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//;
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;
}}
- 重启 Nginx (
service nginx restart
)
我正在使用 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 文件进行身份验证,并在其中存储了信息。 "demo-docker" 是一个用户
为什么 docker pull 命令在 mydocker.abc.com:5903/ubuntu 开启时使用 v2 版本库 v1.Is 有什么方法可以使 docker pull 到使用 v1
我遇到了同样的问题,我调整了我的nginx来解决这个问题:
Artifactory 版本:4.15.0 Docker版本:1.12.0
- 停止 Nginx 服务(
service nginx stop
) - 在 nginx (
/etc/nginx/sites-enabled/default.conf
) 中打开您的 conf 文件并更改其中的以下行:
rewrite ^/(v1|v2)/(.*) /api/docker/build-images//;
到
rewrite ^/(v2)/(.*) /api/docker/build-images//;
示例如下:
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//;
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;
}}
- 重启 Nginx (
service nginx restart
)