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镜像进行下载,这样就有一个问题就是所有使用这个镜像的客户端必须要可以上网

时间: 2024-10-10 15:42:27

Docker push images出现Skipped foreign layer的原因的相关文章

docker push

一.确保docker hub上有账号 二.确认要提交的镜像的命名空间为自己账号名称 三.在本地登录docker: docker login 四.提交镜像: docker push zhengchuzhou2018/hello-world:latest 原文地址:https://www.cnblogs.com/zhengchuzhou/p/9795250.html

docker push 报错:received unexpected HTTP status: 500 Internal Server Error

解决办法:关闭selinux [[email protected] ~]# docker push 10.0.0.10:5000/nginx The push refers to a repository [10.0.0.10:5000/nginx] 22439467ad99: Retrying in 1 second b4a29beac87c: Retrying in 1 second 488dfecc21b1: Retrying in 1 second received unexpected

docker push tianchi

将docker中的demo push 到天池步骤: 1.先进入需要提交的根目录 2.sudo docker build -t registry.cn-shenzhen.aliyuncs.com/xiaojie/tianchi_result:1.0 .  //建立仓库(标签可改可不改,改的话,则之前相同标签的image被覆盖,同时注意,标签后面的.) 3.sudo docker push registry.cn-shenzhen.aliyuncs.com/xiaojie/tianchi_resul

initialization of 'XXX' is skipped by 'case' label 原因及解决办法

今天遇到这个问题,在网上看了一会资料后找到原因,即: switch 的 case 中不能定义变量,不然就会报错.可能是变量的初始化会因为有时候case条件不被执行而跳过. 后来想到三个解决的方法: 1:用if else 代替 switch 语句; 2:在case中用{}将代码括起来,这样在{}中就能定义变量了; 3:如果变量在各个case中都要用的话,就把变量定义在switch外面吧; initialization of 'XXX' is skipped by 'case' label 原因及解

docker push到本地仓库失败

开启registry的方法: docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry 出错内容: Error: Status 500 trying to push repository mongodb: "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>500 Internal Server

Docker push image to Docker hub

1. Before push image to Docker Hub, register an account in https://hub.docker.com/ 2.Input "docker login" in the docker command line interface and input the username and password of account from Docker Hub 3.Create and build the docker images, h

docker push 出现:x509: certificate signed by unknown authority

今天,部署生产的程序的时候,出现一个问题:编译正常,但是,docker 把编译好的image 推送到生产环境上去的时候,出现:x509: certificate signed by unknown authority 经过上网查找资料得知:是由于证书的错误导致的,但是,并不知道如何解决.后来,解决方案如下: vi /usr/lib/systemd/system/docker.service 添加一列: ExecStart=/usr/bin/dockerd --insecure-registry

DOCKER 无法获取使用宿主机DNS 的原因,解决方法

今天在公司服务器上部署项目,遇到一个大坑.接口怎么请求都不同,宿主机DNS已经改了.宿主可以请求,找了半天,原来是DOCKER 没有获取到主机的DNS 进去DOCKER解析不了域名 指定DNS 启动也有警告 [[email protected] ~]# docker run -itd -p 8050:8060 --dns 8.8.8.8 --dns 114.114.114.114 39d515903295 WARNING: IPv4 forwarding is disabled. Network

docker pull 和 push 的性能分析

0. 测试环境 基本架构:没有docker index,所有操作发生在daemon和registry之间 镜像: # docker images --tree Warning: '--tree' is deprecated, it will be removed soon. See usage. ├─9247a3750813 Virtual Size: 85.1 MB │ └─a92b1d9f0ca5 Virtual Size: 1.078 GB Tags: 10.180.156.6:5000/