现象
安装docker26.1.4,启动服务拉取镜像发现超时,走的是官方镜像仓库地址,配置本地加速后/etc/docker/daemon.json,重启仍然走的官方地址
加速器地址:https://docker.imgdb.de/
docker info | grep 'Registry Mirrors'
展示的是:io.docker
,非我们配置的地址
再继续测试:
1、不通过系统服务systemctl 启动docker容器 ,临时启动docker指定加速器地址
sudo dockerd --registry-mirror=https://docker.imgdb.de/ --debug
发现这个时候加速生效了
这个时候可以判断是通过系统服务sysytemd启动导致的问题
查看
cat /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
我们的配置
[root@VM-8-10-centos system]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.imgdb.de/"]
}
[root@VM-8-10-centos system]#
配置依然未生效,Docker 默认套接字路径可能被覆盖(如 systemd 配置冲突),fd://监听路径可能没能正确加载/etc/docker/daemon.json 配置
修改方法
套接字监听协议修改为unix://:
不要直接修改docker.service,通过override.conf重置参数
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/override.conf <<-'EOF' 这个系统启动文件覆盖了docker配置
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --containerd=/run/containerd/containerd.sock --host=unix:///var/run/docker.sock
EOF
这样就解决了配置加速器失效问题
Docker 26.1.4 版本中,同时监听多个套接字时可能出现配置加载异常(官方已确认并修复)
[root@lavm-6pow30ca87 ~]# docker info 查看docker运行信息 可以查看是否正常连接
Client: Docker Engine - Community
Version: 26.1.4
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.14.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.27.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 2
Server Version: 26.1.4
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d2d58213f83a351ca8f528a95fbd145f5654e957
runc version: v1.1.12-0-g51d5e94
init version: de40ad0
Security Options:
seccomp
Profile: builtin
Kernel Version: 3.10.0-1160.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.608GiB
Name: lavm-6pow30ca87
ID: 1cf81d56-b644-4a59-82fb-aea52fe9715f
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://docker.imgdb.de/
Live Restore Enabled: false
Registry Mirrors:
https://docker.imgdb.de/ 成功读取配置