The insecure-registries configuration is ignored beginning with version 29.0.0.
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 42/100
Research direction
Start with the Docker CLI handling of /etc/docker/daemon.json, docker info, and docker push when the containerd image store is enabled. Trace how insecure-registries reaches the push path, compare it with the configuration reported by docker info, and confirm completion by reproducing the self-signed registry push successfully.
Written by the indexing model from the issue text.
Description
Description
The containerd image store is the default storage backend for Docker Engine 29.0 and later on fresh installations or it can be enabled via:
"features": {
"containerd-snapshotter": true
}
When enabled, insecure-registries configuration in /etc/docker/daemon.json is ignored.
docker info still shows the insecure registry but it has no effect and the attempt to push to given registry fails with:
failed to do request: Head "https://my.insecure.registry.com/v2/images/blobs/sha256:9f9449d1a8e45aa4c987a0de8a47f0844503ad8bd9f36d40f917d44baa55816a": tls: failed to verify certificate: x509: certificate signed by unknown authority
docker info
....
Insecure Registries:
my.insecure.registry.com
127.0.0.0/8
::1/128
...
insecure-registries configuration is useful in testing environments where self-signed certificates might be used.
Reproduce
- Install fresh docker v29.1.3
- Prepare e.g.
my.insecure.registry.comregistry with a self-signed cert - Configure insecure registries in
/etc/docker/daemon.json:{"insecure-registries" : ["my.insecure.registry.com" ]} - restart docker
- Push an image, e.g.
docker push my.insecure.registry.com/images/myImage:latest
Expected behavior
docker push should work
docker version
docker version
Client: Docker Engine - Community
Version: 29.1.3
API version: 1.52
Go version: go1.25.5
Git commit: f52814d
Built: Fri Dec 12 14:52:44 2025
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 29.1.3
API version: 1.52 (minimum version 1.44)
Go version: go1.25.5
Git commit: fbf3ed2
Built: Fri Dec 12 14:49:14 2025
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v2.2.1
GitCommit: dea7da592f5d1d2b7755e3a161be07f43fad8f75
runc:
Version: 1.3.4
GitCommit: v1.3.4-0-gd6d73eb8
docker-init:
Version: 0.19.0
GitCommit: de40ad0
docker info
Client: Docker Engine - Community
Version: 29.1.3
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.30.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v5.0.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 3
Server Version: 29.1.3
Storage Driver: overlayfs
driver-type: io.containerd.snapshotter.v1
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
CDI spec directories:
/etc/cdi
/var/run/cdi
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: dea7da592f5d1d2b7755e3a161be07f43fad8f75
runc version: v1.3.4-0-gd6d73eb8
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.17.13-200.fc42.x86_64
Operating System: Fedora Linux 42 (Workstation Edition)
OSType: linux
Architecture: x86_64
CPUs: 14
Total Memory: 30.78GiB
Name: fedora
ID: a42ef4bf-e11b-4928-9603-89e607d452a8
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
my.insecure.registry.com
127.0.0.0/8
::1/128
Registry Mirrors:
https://mirror.gcr.io/
Live Restore Enabled: false
Firewall Backend: iptables+firewalld
Additional Info
No response
- Dominant language
- Go
- Stars
- 6.1k
- Forks
- 2.2k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 43
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from docker/cli
-
kind/bug status/0-triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
kind/feature status/0-triage
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
kind/bug status/0-triage
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
kind/bug status/0-triage
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
NVIDIA/gpu-operator#2955 ·
-
agentic-workflows
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
kovidgoyal/kitty#10516 ·
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 90/100
cisagov/vulnrichment#337 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100