求教关于nexus3推送docker镜像没有blobs的问题
问题描述
我在一台有外网的电脑上搭建了私有nexus3并创建了docker(host)仓库,这台电脑上push和pull自己构建的镜像看上去没问题
docker push 192.168.10.10:5000/nacos:2.0.3
但是我到另外一台没有外网的电脑上pull镜像的时候,发现无法拉取镜像
PS C:\Windows\system32> docker pull 192.168.10.10:5000/nacos:2.0.3
2.0.3: Pulling from nacos
bc8517709e9c: Retrying in 1 second
fc43faa05bed: Download complete
ca59508af03b: Download complete
...
dial tcp 20.205.82.64:443: connectex: A connection attem
我去查看了一下nexus3上的manifests发现
"blobSum" : "sha256:bc8517709e9cfff223cb034ff5be8fcbfa5409de286cdac9ae1b8878ebea6b84"
是windows的基础镜像也就是Dockerfile的
FROM mcr.microsoft.com/windows/nanoserver:1809-amd64
但是在nexus的blobs里面根本没有这个数据,这个镜像根本没传到nexus3上面去,我还尝试把mcr.microsoft.com/windows/nanoserver:1809-amd64传到这个仓库中去但是blobs中依然没有sha256:bc8517709e9c这一条数据,只有一个躯壳tag标记,我该怎么操作才能把nanoserver的镜像完整上传上去?
docker push 192.168.10.10:5000/mcr.microsoft.com/windows/nanoserver:1809-amd64
问题出现的平台版本及自己尝试过哪些方法
相关代码
粘贴代码文本(请勿用截图)
你期待的结果是什么?实际看到的错误信息又是什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试下打成这个tag上传上去
docker push 192.168.10.10:5000/windows/nanoserver:1809-amd64
终于解决了,nanoserver的官方镜像设置了mediaType为application/vnd.docker.image.rootfs.foreign.diff.tar.gzip
这种设置会规定了该镜像只能从微软官方获取,目前解决办法是获取下来之后进行docker inspect "镜像"查看那个镜像的所在目录,打开descriptor.json修改里面的mediaType然后重启docker,docker就会重新读取这个配置,再去进行上传到nexus3的时候就会把这个镜像完整上传了。
不过我觉得应该有更正确的做法例如使用docker manifest create来构建的不过没看懂这个命令怎么用....以后再研究看看了