记录一下 Docker 无法启动,或者点击启动显示未知错误

解决方案:
看日志,从 /var/log/syslog 看到如下:
2025-05-13T13:52:53.238227+08:00 storage systemd[1]: Stopped dockermgr.service - trim docker management service.
2025-05-13T13:52:53.279816+08:00 storage systemd[1]: Starting dockermgr.service - trim docker management service...
2025-05-13T13:52:58.308060+08:00 storage systemd[1]: Started dockermgr.service - trim docker management service.
2025-05-13T13:52:58.321360+08:00 storage dockermgr[5239]: SPDLOG: create spdlog success!
2025-05-13T13:52:58.321460+08:00 storage dockermgr[5239]: [13:52:58.321] [info] [5239] No need to merge old config file
2025-05-13T13:52:58.321550+08:00 storage dockermgr[5239]: terminate called after throwing an instance of 'nlohmann::json_abi_v3_11_2::detail::type_error'
2025-05-13T13:52:58.321656+08:00 storage dockermgr[5239]: what(): [json.exception.type_error.305] cannot use operator[] with a string argument with discarded
2025-05-13T13:52:58.323463+08:00 storage systemd[1]: dockermgr.service: Main process exited, code=killed, status=6/ABRT
2025-05-13T13:52:58.323797+08:00 storage systemd[1]: dockermgr.service: Failed with result 'signal'.
2025-05-13T13:53:03.488038+08:00 storage systemd[1]: dockermgr.service: Scheduled restart **, restart counter is at 73.
2025-05-13T13:53:03.488449+08:00 storage systemd[1]: Stopped dockermgr.service - trim docker management service.
2025-05-13T13:53:03.523919+08:00 storage systemd[1]: Starting dockermgr.service - trim docker management service...
2025-05-13T13:53:08.559988+08:00 storage systemd[1]: Started dockermgr.service - trim docker management service.
猜猜基本上就知道是 dockermgr.service 挂了。
直接看
systemctl status dockermgr.service
root@storage:/var/log# systemctl status dockermgr.service
● dockermgr.service - trim docker management service
Loaded: loaded (/etc/systemd/system/dockermgr.service; enabled; preset: enabled)
Active: activating (auto-restart) (Result: signal) since Tue 2025-05-13 13:51:05 CST; 3s ago
Process: 4798 ExecStartPre=/bin/sleep 5 (code=exited, status=0/SUCCESS)
Process: 4800 ExecStart=/usr/trim/bin/dockermgr (code=killed, signal=ABRT)
Main PID: 4800 (code=killed, signal=ABRT)
CPU: 17ms
果然挂了,手动执行 /usr/trim/bin/dockermgr
SPDLOG: create spdlog success!
[13:51:24.671] [info] [4860] No need to merge old config file
terminate called after throwing an instance of 'nlohmann::json_abi_v3_11_2::detail::type_error'
what(): [json.exception.type_error.305] cannot use operator[] with a string argument with discarded
Aborted
应该是某个配置文件解析失败。
于是进入 /usr/trim/bin/ 附近的目录,找下有没有配置文件,在 /usr/trim/etc 中看见 dockermgr.conf,cat 一下出来是乱码,直接用
echo "{}" > dockermgr.conf 覆盖一下,重启服务,一切正常。
重新执行下:/usr/trim/bin/dockermgr,发现好了
SPDLOG: create spdlog success!
[13:54:19.297] [info] [5462] No need to merge old config file
[13:54:19.297] [info] [5462] Handle daemon mirror url: https://docker.fnnas.com, name: 默认加速源
[13:54:19.297] [info] [5462] Handle daemon mirror url: https://registry.hub.docker.com, name: docker
[13:54:19.297] [info] [5462] Update with the data root in daemon.json
[13:54:19.298] [info] [5462] Set data root to /vol1/docker!
[13:54:19.298] [info] [5462] Save the default docker config and restart docker
^C[13:54:24.268] [info] [5462] Started!!
[13:54:24.268] [info] [5462] [SAC]Ready to refresh ports in bk
[13:54:24.269] [info] [5462] App dockermgr is running: thread num = 8
[13:54:24.269] [info] [5462] Thread[0] for processing...
[13:54:24.269] [info] [5462] Thread[1] for processing...
[13:54:24.269] [info] [5462] Thread[2] for processing...
[13:54:24.269] [info] [5462] Thread[3] for processing...
[13:54:24.269] [info] [5462] Thread[4] for processing...
[13:54:24.269] [info] [5462] Thread[5] for processing...
[13:54:24.269] [info] [5462] Thread[6] for processing...
[13:54:24.269] [info] [5462] Thread[0] for inspection...
[13:54:24.269] [info] [5462] Thread[1] for inspection...
[13:54:24.269] [info] [5462] Thread[2] for inspection...
[13:54:24.269] [info] [5462] waiting for connection
[13:54:24.298] [info] [5465] Save configuraton done!
OK,Ctrl + C 中止,然后 systemctl start dockermgr.service 启动服务。
● dockermgr.service - trim docker management service
Loaded: loaded (/etc/systemd/system/dockermgr.service; enabled; preset: enabled)
Active: active (running) since Tue 2025-05-13 13:59:35 CST; 19s ago
Process: 8594 ExecStartPre=/bin/sleep 5 (code=exited, status=0/SUCCESS)
Main PID: 8597 (dockermgr)
Tasks: 16 (limit: 9449)
Memory: 2.6M
CPU: 542ms
CGroup: /system.slice/dockermgr.service
**─8597 /usr/trim/bin/dockermgr
May 13 13:59:49 storage dockermgr[8936]: **─8623 /usr/bin/dockerd --tls=false -H unix:///var/run/docker.sock
May 13 13:59:49 storage dockermgr[8936]: May 13 13:59:40 storage systemd[1]: Started docker.service - trim docker service.
May 13 13:59:49 storage dockermgr[8936]: May 13 13:59:40 storage dockerd[8623]: time="2025-05-13T13:59:40.469561942+08:00" level=info msg="Starting up"
May 13 13:59:49 storage dockermgr[8936]: May 13 13:59:41 storage dockerd[8623]: time="2025-05-13T13:59:41.124998482+08:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
May 13 13:59:49 storage dockermgr[8936]: May 13 13:59:41 storage dockerd[8623]: time="2025-05-13T13:59:41.127823494+08:00" level=info msg="Loading containers: start."
May 13 13:59:49 storage dockermgr[8936]: May 13 13:59:42 storage dockerd[8623]: time="2025-05-13T13:59:42.103049576+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip ca>
May 13 13:59:49 storage dockermgr[8936]: May 13 13:59:42 storage dockerd[8623]: time="2025-05-13T13:59:42.314694803+08:00" level=info msg="Loading containers: done."
May 13 13:59:49 storage dockermgr[8936]: May 13 13:59:42 storage dockerd[8623]: time="2025-05-13T13:59:42.440366399+08:00" level=info msg="Docker daemon" commit=8b79278 containerd-snapshotter=false storage-driver=overlay2 version=26>
May 13 13:59:49 storage dockermgr[8936]: May 13 13:59:42 storage dockerd[8623]: time="2025-05-13T13:59:42.440529717+08:00" level=info msg="Daemon has completed initialization"
May 13 13:59:49 storage dockermgr[8936]: May 13 13:59:42 storage dockerd[8623]: time="2025-05-13T13:59:42.557120445+08:00" level=info msg="API listen on /var/run/docker.sock"
启动成功,然后回到飞牛 web,发现正常了。
