Can not pull/push images after update docker to 1.12

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:

  • Unable to load AWS credentials from any provider in the chain in Docker EC2 env
  • Jenkins: pass (environment) variable to Docker while building the image
  • Docker image running as unknown user ID can delete root files
  • How to get minio-server version in docker?
  • AWS ECS agent won't start
  • boot2docker on windows missing apt-get / package manager
  • 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.

  • Not be able to log on to standard Neo4j Docker container - disable authentication form outside?
  • What is the meaning of the IDs shown when a Docker image is pulled?
  • Beanstalkd in docker
  • Running docker Ubuntu image on Debian enironment
  • Error starting Windows docker container with managed service account
  • Consul agent are still marked as in critical state after terminating whole instance
  • 2 Solutions collect form web for “Can not pull/push images after update docker to 1.12”

    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

    If you are using Windows and you get this error you need to create a file here: "C:\ProgramData\docker\config\daemon.json"

    and do the same as @Bspec mentioned above:

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

    Then restart docker using PowerShell commands:

    Stop-Service docker
    Start-Service docker
    
    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.