Docker从Nexus代理中拉取来自守护程序的错误响应:未知:未知

杰比恩·塔里克(Djebien Tarik)

配置Nexus Docker注册表和代理“ dockerhub-proxy”后,如下所示:

我能够在docker登录后将图像推送到nexus注册表,但是无法通过nexus代理“ dockerhub-proxy”从docker hub提取图像,并且错误未提供详细信息:

来自守护程序的错误响应:未知:未知

这适用于在Docker Desktop Windows上运行的Docker守护程序客户端:

版本2.0.0.3(31259)通道:稳定版本:8858db3引擎:18.09.2

我已经通过docker client从Linux EC2实例尝试过了,并且效果很好:

[root@ip-host-daemon docker]# docker pull ip_nexus_host:port_http_connector_nexus_proxy/mongo Using default tag: latest latest: Pulling from mongo Digest: sha256:29d7ca01f9b7e3812a831ff143620e93ddf5e34bb9ac672d91140e064158a0fc Status: Downloaded newer image for ip_nexus_host:port_http_connector_nexus_proxy/mongo:latest

我不知道为什么在Windows上不起作用

PS C:\Dev\workspace> docker push my_dns/nexus/repository/dockerhub-proxy/image-name:1.0.1 The push refers to repository [my_dns/nexus/repository/dockerhub-proxy/image-name] 0bca66726bc2: Pushed 1.0.1: digest: sha256:0736228548d13e8d39fba5a0ed5cd8a7719074318fe9f8ddfc395fd454afc01f size: 528 PS C:\Dev\workspace> docker pull my_dns/nexus/repository/dockerhub-proxy/mysql:latest **Error response from daemon: unknown: unknown**

我正在寻找能够通过Docker Windows客户端守护程序从Docker Hub像mongo一样拉取正式docker映像的功能,例如通过在nexus OSS上配置的Nexus代理传递并通过http连接器公开到Nexus Group(其中包含主机和代理) ),Nexus OSS托管在AWS EC2 Linux实例VPC /私有子网上,没有任何公共主机名/ EIP,而是通过ELB / ALB托管。

谢谢你的帮助

杰比恩·塔里克(Djebien Tarik)

根据这篇文章:

https://support.sonatype.com/hc/zh-CN/articles/115013153887-Docker-Repository-Configuration-and-Client-Connection

您的nexus公开了通过以下语法可供Docker CLI访问的HTTP(S)连接器:

docker pull <nexus-hostname>:<port_nexus_docker_group>/<dockerHubImage>:<officialTag>
docker push <nexus-hostname>:<port_nexus_docker_host>/<yourImage>:<yourTag>

很明显,如果Nexus在VPC中具有公用DNS,只需打开托管并运行Nexus服务器的EC2实例的安全组上的每个端口,以允许来自IP范围/ CIDR源的入站网络流量。

如果您的Nexus在VPC的私有子网中具有私有IP,只需将AWS-ELB网络负载均衡器放在公共子网中同一VPC的前面,并为每个暴露的HTTP(S)端口使用两个TCP侦听器(nexus-group和nexus -hosted)重定向到两个TCP目标组上,该目标组在托管您的nexus服务器的EC2实例ID上具有实例目标类型,这会将网络流量从您的公共DNS重定向到ELB,然后再重定向到Nexus EC2实例。

请注意,我们未使用AWS-ELB Application Load Balancer,因为它仅与HTTP侦听器一起使用,并且Docker在启动Docker CLI时不支持使用上下文来指定存储库的路径,默认情况下为HTTP(S)并且所有这些都具有URL路径模式/ v2 / *的中间调用。

正确的设置和配置后,您将能够docker登录,将图像拖放到内部nexus存储库中,例如以下示例powershell会话:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS D:\> docker login <host_redirect_to_NLB>:<port_nexus_docker_group>
Username: tarik
Password:
Login Succeeded
PS D:\> docker login <host_redirect_to_NLB>:<port_nexus_docker_host>
Username: tarik
Password:
Login Succeeded
PS D:\> docker pull <host_redirect_to_NLB>:<port_nexus_docker_group>/amazonlinux
Using default tag: latest
latest: Pulling from amazonlinux
72d97abdfae3: Pull complete
Digest: sha256:04f5ea9fec3f1f514451ea7c1a1a77a7c023787cb6cc066cc6d0413b56cd0eac
Status: Downloaded newer image for <host_redirect_to_NLB>:<port_nexus_docker_group>/amazonlinux:latest
PS D:\> docker tag <host_redirect_to_NLB>:<port_nexus_docker_group>/amazonlinux <host_redirect_to_NLB>:<port_nexus_docker_host>/tarik-awslinux:1.0
PS D:\> docker push <host_redirect_to_NLB>:<port_nexus_docker_host>/tarik-awslinux:1.0
The push refers to repository [<host_redirect_to_NLB>:<port_nexus_docker_host>/tarik-awslinux]
f387c8b346c8: Pushed
1.0: digest: sha256:04f5ea9fec3f1f514451ea7c1a1a77a7c023787cb6cc066cc6d0413b56cd0eac size: 529
PS D:\> more C:\Users\Tarik\.docker\config.json
{
        "auths": {
                "<host_redirect_to_NLB>:<port_nexus_docker_host>": {},
                "<host_redirect_to_NLB>:<port_nexus_docker_group>": {}
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/18.09.2 (windows)"
        },
        "credsStore": "wincred",
        "stackOrchestrator": "swarm"
}

PS D:\> more C:\Users\Tarik\.docker\daemon.json
{
  "registry-mirrors": [
    "https://<host_redirect_to_NLB>:<port_nexus_docker_group>"
  ],
  "insecure-registries": [
    "<host_redirect_to_NLB>:<port_nexus_docker_host>",
    "<host_redirect_to_NLB>:<port_nexus_docker_group>"
  ],
  "disable-legacy-registry": true,
  "debug": true,
  "experimental": false
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自守护程序的错误响应:Dockerfile分析错误行1:未知指令:#

来自守护程序的错误响应:Dockerfile分析错误未知标志:安装

来自守护进程的 Docker-compose 错误响应:nginx 的清单:1.15-alphine 未找到:清单未知:清单未知

docker:来自守护进程的错误响应:无法侦听抽象 unix 套接字“/containerd ...权限被拒绝:未知

Raspbian泊坞窗:来自守护程序的错误响应:cgroups:该系统不支持内存cgroup:未知

泊坞窗:来自守护程序的错误响应:ttrpc:关闭:未知。升级到1.4.0后

在管道中运行的Docker表示``docker:来自守护程序的错误响应:授权被拒绝''

Docker:来自守护程序的错误响应:删除myvol:卷正在使用中

无法提取映像“ xx.azurecr.io/xx:latest”:rpc错误:代码=未知desc =来自守护程序的错误响应:未授权:需要身份验证

Docker:来自守护程序的错误响应-为什么它没有显示在Docker容器ls中?

来自守护程序的错误响应:获取https://gcr.io/v2/xxx/xxx/xxxx/xx:未知:无法解析json密钥

docker:来自守护程序的错误响应:驱动程序无法在端点上编程外部连接

Docker错误:来自守护程序的错误响应:挂载被拒绝:在OS X上

CannotPullContainerError:来自守护程序的错误响应:对ECR Repo Image的拉式访问被拒绝,存储库不存在或可能需要'docker login'

Android Battery Historian-docker:来自守护程序的错误响应:gcr.io/android-battery-historian的拉式访问被拒绝

来自守护程序的错误响应:拒绝对buildcontainer进行拉式访问,存储库不存在或可能需要“ docker登录”

docker在private nexus上登录=>来自守护程序的错误响应:尝试登录http:// ip:port / v2 /失败,状态为:404未找到

Docker:来自守护程序的错误响应:成功登录后未授权

Docker:来自守护程序的错误响应:绑定0.0.0.0:3306失败:端口已分配

docker创建| 来自守护程序的错误响应:未指定命令

来自守护程序的Docker错误响应:OCI运行时创建失败

Docker-来自守护程序的错误响应:客户端比服务器更新

docker cp-“来自守护程序的错误响应:不是目录”

Docker:来自守护程序的错误响应:无效的卷规范:ubuntu

docker:来自守护进程的错误响应:无法创建垫片

docker: 来自守护进程的错误响应......怎么了?

来自守护程序的错误响应:找不到网络myapp

来自守护程序的错误响应:无法停止容器

来自守护程序的错误响应:Container Cli 未运行