Docker push images出现Skipped foreign layer的原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker push images出现Skipped foreign layer的原因相关的知识,希望对你有一定的参考价值。

利用最新的Registry去搭建Docker私有仓库,但是在推送镜像的时候出现

C:\Users\Administrator>docker tag microsoft/iis 192.168.2.30:5000/iis

C:\Users\Administrator>docker push 192.168.2.30:5000/iis

The push refers to a repository [192.168.2.30:5000/iis]

780cc29d7c04: Pushed

ce15af77227d: Pushed

357bccc34a53: Pushed

591455288d2b: Layer already exists

3543301c85cf: Skipped foreign layer

f358be10862c: Skipped foreign layer

latest: digest: sha256:87a2af3e29845ada74286a30e0002d17f75b57675056385de404f9c3784a9d3e size: 1783


经过最后发现https://github.com/moby/moby/issues/27580

原来是微软公司设置的发行策略,主要是法律及版权控制


上面可以看出,你可以推送自己构建的层,但是无法推送基础层。

3543301c85cf: Skipped foreign layer

f358be10862c: Skipped foreign layer


有一个debug说明的很清楚:

Docker pull xxx.xxx.xxx.xxx:5000/windowsservercore ( docker registry)

time="2016-11-21T08:45:42.009251300-08:00" level=debug msg="pulling blob "sha256:d33fff6043a134da85e10360f9932543f1dfc0c3a22e1edd062aa9b088a86c5b""
time="2016-11-21T08:45:42.009251300-08:00" level=debug msg="pulling blob "sha256:9c7f9c7d9bc2915388ecc5d08e89a7583658285469d7325281f95d8ee279cc60""
time="2016-11-21T08:45:42.010254400-08:00" level=debug msg="Pulling sha256:d33fff6043a134da85e10360f9932543f1dfc0c3a22e1edd062aa9b088a86c5b from foreign URLhttps://go.microsoft.com/fwlink/?linkid=834677"
time="2016-11-21T08:45:42.012253300-08:00" level=debug msg="Pulling sha256:9c7f9c7d9bc2915388ecc5d08e89a7583658285469d7325281f95d8ee279cc60 from foreign URLhttps://go.microsoft.com/fwlink/?linkid=830340"
time="2016-11-21T08:54:53.022940200-08:00" level=debug msg="Downloaded d33fff6043a1 to tempfile C:\Users\ADMINI~1\AppData\Local\Temp\2\GetImageBlob260816119"

It detects the foreign layers and pulls the blob & image from Microsoft site, it defeats the purpose of registry



这里就很清楚了,forign layer都是来自于https://go.microsoft.com/fwlink/?linkid=834677以及https://go.microsoft.com/fwlink/?linkid=830340


重点:所以出现这种情况就是说无法推送外层,推送至私有仓库会被忽略,但是可以通过docker pull镜像进行下载,这样就有一个问题就是所有使用这个镜像的客户端必须要可以上网

本文出自 “枫林晚” 博客,请务必保留此出处http://fengwan.blog.51cto.com/508652/1947418

以上是关于Docker push images出现Skipped foreign layer的原因的主要内容,如果未能解决你的问题,请参考以下文章

Docker push image to Docker hub

Gitlab CE Docker Image Too Large to Push

docker push到harbor私有仓库出现的相关问题及解决办法

docker push到harbor私有仓库出现的相关问题及解决办法

Docker 私有registry出现的证书问题

Docker pull下载出现 error pulling image configuration: