更新docker之后,无法将图像拖放到1.12

基于docker 1.10.3的私有registry运行良好,但是在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 Using default tag: latest Error response from daemon: Get https://myip:5000/v1/_ping: http: server gave HTTP response to HTTPS client 

当我将Docker更改为1.10.3时,仍然如下所示:

 $ 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 

一些相关信息如下:

 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 

在debugging模式下重新启动Docker守护进程后,重现我的问题时的守护进程日志如下所示:

 DEBU[0794] Calling POST /v1.24http://img.dovov.comcreate?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.24http://img.dovov.comcreate 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 

更重要的是,我只是运行一个简单的命令启动私人registrytesting,其他任何事情都是默认的:

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

没有代理configuration。 总之,这只是一个安静的testing环境。

我遇到过同样的问题。

这对我有帮助:

  • 在客户机上创build或修改/etc/docker/daemon.json

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

  • 重新启动docker守护进程

    sudo /etc/init.d/docker restart

如果您使用Windows,并且出现此错误,则需要在此处创build一个文件: "C:\ProgramData\docker\config\daemon.json"

和上面提到的@Bspec一样:

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

然后使用PowerShell命令重新启动docker:

 Stop-Service docker Start-Service docker 

对于Windows用户

在这里添加本地registry并应用:

在这里输入图像说明