Skip to content

Cannot push image using ipv6 address literal and port #39033

@cboylan

Description

@cboylan

Description

Docker push does not work when specifying the host as an escaped ipv6 address literal with port designation.

Steps to reproduce the issue:

  1. docker push [2607:ff68:100:54:f816:3eff:fe7c:e98a]:5000/zuul/nodepool:latest

Describe the results you received:

"[2607:ff68:100:54:f816:3eff:fe7c:e98a]:5000/zuul/nodepool:latest" is not a valid repository/tag: invalid reference format

Describe the results you expected:

I expected docker to connect via ipv6 to tcp port 5000 at 2607:ff68:100:54:f816:3eff:fe7c:e98a and push the image into the registry running there.

Additional information you deem important (e.g. issue happens only occasionally):

This happens because the domainRegex in docker/distribution/regexp.go doesn't allow for the wrapping []'s. I'm filing the bug here though as the desired end state is that ipv6 addresses will work and chances are fixing the regexp will just run into the next problem with using ipv6 addresses.

Though maybe we get lucky and it just works after updating the regex.

Output of docker version:

root@clarkb-docker-debug:~# docker version
Client:
 Version:           18.09.4
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        d14af54266
 Built:             Wed Mar 27 18:35:44 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.4
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       d14af54
  Built:            Wed Mar 27 18:01:48 2019
  OS/Arch:          linux/amd64
  Experimental:     false

Output of docker info:

root@clarkb-docker-debug:~# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 18.09.4
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84
runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.15.0-47-generic
Operating System: Ubuntu 18.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 7.789GiB
Name: clarkb-docker-debug
ID: BQHT:G3FO:IKPY:7X6W:JAAK:VDK4:CD65:YOOM:LF7W:PA57:ECUB:22P6
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

WARNING: No swap limit support

Additional environment details (AWS, VirtualBox, physical, etc.):

This was running on an Ubuntu 18.04 VM host with docker installed from the docker ubuntu deb repo.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions