更新docker后,无法将图像拉/推送到1.12 [英] Can not pull/push images after update docker to 1.12

查看:604
本文介绍了更新docker后,无法将图像拉/推送到1.12的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

私人注册表基于docker 1.10.3工作得很好,但是在docker更新到1.12.0之后,我无法拉/推图像。



我有将/ etc / sysconfig / docker修改为:

  OPTIONS =' -  selinux-enabled = true --insecure-registry = myip:5000'

  OPTIONS =' -  selinux-enabled = true --insecure-registry myip:5000'

但是当我执行拉/推,我得到这个错误:

  $ docker pull myip:5000 / cadvisor 
使用默认标签:最新
守护进程的错误响应:Get https:// myip:5000 / v1 / _ping:http:server给HTTP客户端的HTTP响应
p $ p>

当我将docker更改为1.10.3时,仍然可以正常工作如下:

  $ docker pull myip:5000 / cadvisor 
使用默认标签:最新
尝试提取存储库myip:5000 / cadvisor ...
最新:从myip拔:5000 / cadvisor
09d0 220f4043:完成
a3ed95caeb02:完成
151807d34af9:完成
14cd28dce332:完成
摘要:
sha256:33b6475cd5b7646b3748097af1224de3eee3ba7cf5105524d95c0cf135f59b47
状态:下载的较新图像对于myip / cadvisor:最新

有些相关信息如下所示:

  docker版本
客户端:
版本:1.12.0
API版本:1.24
转到版本:go1。 6.3
Git commit:8eab29e
建立:

操作系统/ Arch:linux / amd64

服务器:
版本:1.12.0
API版本:1.24
Go版本:go1.6.3
Git提交:8eab29e
内置:

操作系统/ Arch:linux / amd64

码头信息
容器:4
运行:1
暂停:0
停止:3
图像:241
服务器版本:1.12。 0
存储驱动程序:devicemapper
池名称:docker-253:0-6809-pool
池块大小:65.54 kB
基本设备大小:107.4 GB
备份文件em:xfs
数据文件:/ dev / loop0
元数据文件:/ dev / loop1
使用的数据空间:5.459 GB
数据空间总计:107.4 GB
数据可用空间:34.74 GB
使用的元数据空间:9.912 MB
元数据空间总计:2.147 GB
可用的元数据空间:2.138 GB
薄池最小可用空间:10.74 GB
Udev同步支持:true
延迟删除启用:false
延迟删除已启用:false
延迟删除的设备计数:0
数据循环文件:/ var / lib / docker / devicemapper / devicemapper / data
警告:对于生产使用,强烈建议不要使用环回设备。使用'-storage-opt dm.thinpooldev'指定自定义块存储设备。
元数据循环文件:/ var / lib / docker / devicemapper / devicemapper / metadata
库版本:1.02.107-RHEL7(2016-06-09)
日志记录驱动程序:json-file
Cgroup驱动程序:cgroupfs
插件:
卷:本地
网络:主机覆盖null桥
Swarm:inactive
运行时:runc
默认运行时:runc
安全选项:seccomp
内核版本:3.10.0-229.el7.x86_64
操作系统:CentOS Linux 7(Core)
OSType:linux
架构:x86_64
CPU:24
总内存:62.39 GiB
名称:server_3
ID:TITS:BL4B:M5FE:CIRO:5SW6:TVIV:HW36:J7OS:WLHF: 46T6:2RBA:WCNV
Docker根目录:/ var / lib / docker
调试模式(客户端):false
调试模式(服务器):true
文件描述符:21
Goroutines:32
系统时间:2016-08-02T10:33:06.414048675 + 08:00
EventsListeners:0
注册表:https://index.docker.io/v1 /
警告:bridge-nf-call-iptables被禁用
警告:bridge-nf-call-ip6tables被禁用
Inse治疗注册机构:
127.0.0.0/8

docker exec< registry-container>注册表-version
注册表github.com/docker/distribution v2.2.1

重启后在调试模式下的docker守护进程,再现我的问题时的守护程序日志如下:

  DEBU [0794]调用POST / v1 .24 / images / create?fromImage = 10.10.10.40%3A5000%2Fcadvisor& tag = latest 
DEBU主持人:/etc/docker/certs.d/10.10.10.40:5000
DEBU [ 0794] hostDir:/etc/docker/certs.d/10.10.10.40:5000
DEBU [0794]试图从https://10.10.10.40:5000 v2拉出10.10.10.40:5000/cadvisor v2
WARN [0794]获取v2注册表时出错:获取https://10.10.10.40:5000/v2/:http服务器给HTTPS客户端发送HTTP响应
ERRO尝试下一个端点执行以下错误:获取https://10.10.10.40:5000/v2/:http:server给HTTP客户端的HTTP响应
DEBU尝试从https://10.10.10.40:5000拉10.10.10.40:5000/cadvisor v1
DEBU [0794] hostDir:/etc/docker/certs.d/10.10.10.40:5000
DEBU [0794]尝试v1 ping注册表端点https://10.10.10.40:5000/v1/
DEBU [0794]从错误回退:获取https://10.10.10.40:5000/v1/_ping:http:server给HTTP对HTTPS客户端的响应
ERRO尝试下一个端点提取错误后:获取https://10.10.10.40:5000/v1/_ping:http:server给HTTPS客户端的HTTP响应
ERRO [ 0794] POST /v1.24/images/create的处理程序返回错误:获取https://10.10.10.40:5000/v1/_ping:http:server给HTTP客户端的HTTP响应
DEBU [1201] clean 2未使用的exec命令

此外,我只是运行一个简单的命令启动私有注册表进行测试,任何默认情况下是:

  docker run -d -p 5000:5000 --restart = always --name registry -v' pwd'/ data:/ var / lib /注册表注册表:2 

没有配置代理。总之,它只是一个安静的样本环境进行测试。

解决方案

我有同样的问题。
$ b

这对我有帮助:




  • 创建或修改 / etc / docker /客户机上的daemon.json



    {insecure-registry:[myregistry example.com:5000]}


  • 重新启动docker守护程序



    sudo /etc/init.d/docker restart



The private registry was worked well based on docker 1.10.3,but I can not pull/push images after the docker updated to 1.12.0.

I had modified the /etc/sysconfig/docker as:

OPTIONS='--selinux-enabled=true --insecure-registry=myip:5000'

or

OPTIONS='--selinux-enabled=true --insecure-registry myip:5000'

but when I exec pull/push,I got this error:

$ docker pull myip:5000/cadvisor
Using default tag: latest
Error response from daemon: Get https://myip:5000/v1/_ping: http: server gave HTTP response to HTTPS client

when I change back docker to 1.10.3, it still work well as below:

$ docker pull myip:5000/cadvisor
Using default tag: latest
Trying to pull repository myip:5000/cadvisor ... 
latest: Pulling from myip:5000/cadvisor
09d0220f4043: Pull complete 
a3ed95caeb02: Pull complete 
151807d34af9: Pull complete 
14cd28dce332: Pull complete     
Digest:
sha256:33b6475cd5b7646b3748097af1224de3eee3ba7cf5105524d95c0cf135f59b47
Status: Downloaded newer image for myip/cadvisor:latest

Some relative information are listed below:

docker version
Client:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built:

OS/Arch: linux/amd64

Server:
Version: 1.12.0
API version: 1.24
Go version: go1.6.3
Git commit: 8eab29e
Built:

OS/Arch: linux/amd64

docker info
Containers: 4
Running: 1
Paused: 0
Stopped: 3
Images: 241
Server Version: 1.12.0
Storage Driver: devicemapper
Pool Name: docker-253:0-6809-pool
Pool Blocksize: 65.54 kB
Base Device Size: 107.4 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 5.459 GB
Data Space Total: 107.4 GB
Data Space Available: 34.74 GB
Metadata Space Used: 9.912 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.138 GB
Thin Pool Minimum Free Space: 10.74 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Use '--storage-opt dm.thinpooldev' to specify a custom block storage device.
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.107-RHEL7 (2016-06-09)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host overlay null bridge
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.10.0-229.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 62.39 GiB
Name: server_3
ID: TITS:BL4B:M5FE:CIRO:5SW6:TVIV:HW36:J7OS:WLHF:46T6:2RBA:WCNV
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
File Descriptors: 21
Goroutines: 32
System Time: 2016-08-02T10:33:06.414048675+08:00
EventsListeners: 0
Registry: https://index.docker.io/v1/
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
Insecure Registries:
127.0.0.0/8

docker exec <registry-container> registry -version
registry github.com/docker/distribution v2.2.1

After I restart the docker daemon in debug mode, the daemon logs when reproducing my problem are listed below:

DEBU[0794] Calling POST /v1.24/images/create?fromImage=10.10.10.40%3A5000%2Fcadvisor&tag=latest 
DEBU[0794] hostDir: /etc/docker/certs.d/10.10.10.40:5000 
DEBU[0794] hostDir: /etc/docker/certs.d/10.10.10.40:5000 
DEBU[0794] Trying to pull 10.10.10.40:5000/cadvisor from https://10.10.10.40:5000 v2 
WARN[0794] Error getting v2 registry: Get https://10.10.10.40:5000/v2/: http: server gave HTTP response to HTTPS client 
ERRO[0794] Attempting next endpoint for pull after error: Get https://10.10.10.40:5000/v2/: http: server gave HTTP response to HTTPS client
DEBU[0794] Trying to pull 10.10.10.40:5000/cadvisor from https://10.10.10.40:5000 v1 
DEBU[0794] hostDir: /etc/docker/certs.d/10.10.10.40:5000
DEBU[0794] attempting v1 ping for registry endpoint https://10.10.10.40:5000/v1/
DEBU[0794] Fallback from error: Get https://10.10.10.40:5000/v1/_ping: http: server gave HTTP response to HTTPS client 
ERRO[0794] Attempting next endpoint for pull after error: Get https://10.10.10.40:5000/v1/_ping: http: server gave HTTP response to HTTPS client
ERRO[0794] Handler for POST /v1.24/images/create returned error: Get https://10.10.10.40:5000/v1/_ping: http: server gave HTTP response to HTTPS client 
DEBU[1201] clean 2 unused exec commands

What's more, I just run a simple command to launch the private registry for test, anything else is by default:

docker run -d -p 5000:5000 --restart=always --name registry -v 'pwd'/data:/var/lib/registry registry:2

No proxy is configured. In summary, it is only a quiet sample environment for test.

解决方案

I had the same issue.

This helped for me:

  • Create or modify /etc/docker/daemon.json on the client machine

    { "insecure-registries":["myregistry.example.com:5000"] }

  • Restart docker daemon

    sudo /etc/init.d/docker restart

这篇关于更新docker后,无法将图像拉/推送到1.12的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆