解决了很久,尝试了很多种方法,但是基本是因为docker.service的编写问题

第一个问题是:docker的二进制文件的名字,新版的docker的二进制文件为dockerd,即确保你的ExecStart后面的第一个参数是/usr/bin/dockerd,现行docker一般都是这样,不确定可以去/usr/bin查看,命令:ls -l /usr/bin/docker*,只要出现dockerd文件,就是二进制文件

解决方法:检查确保ExecStart=/usr/bin/dockerd

第二个问题是:unix socket路径配置错了,如果是unix://var/run/docker.sock,那么它指的是相对路径,这会导致运行时查找文件跟你当前目录有关

解决方法:unix:///var/run/docker.sock配成绝对路径

完整的ExecStart配置为:

ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐