安装Docker时错误提示 "could not change group /var/run/docker.sock to docker: group docker not found"的解决方案...

安装docker时报错如下

[root@localhost docker]# dockerd &
[1] 71684
[root@localhost docker]# INFO[2022-02-24T18:48:05.404654897+08:00] Starting up                                  
failed to start containerd: exec: "containerd": executable file not found in $PATH
 
[1]+  退出 1                dockerd
排查过程
问题定位

百度上有说linux内核版本不支持、有说/etc/docker/deamon.json格式不正确,/etc/systemd/system/docker.server配置不正确、etc/sysconfig/docker配置不正确的。各种复制粘贴的文章,眼花缭乱,就是解决不了问题。

通过MS BING搜索异常日志,在github上找到一个相同提示的网页 https://github.com/docker/for-linux/issues/705 通过对问题的分析,大概原因及方法如下:

然后排查现有服务器,使用 whereis containerd 命令查看containerd位置,发现在 /usr/bin/containerd

使用cat /etc/sudoers | grep secure_path命令查看/etc/sudoerssecure_path路径配置,发现是包含containerd位置的。

20220225100856.png

问题思考

经过上述步骤,我们可以确定的是服务器环境的containerd/usr/bin目录中,而/usr/bin又配置在了$PATH路径中。启动dockerd命令的错误提示是Docker无法启动containerd,可执行的文件在$PATH中找不到。 难道是文件权限问题,所以先通过ls -l /usr/bin/containerd查看下containerd的权限20220225095332.png

OMG, containerd文件只有r权限,没有执行权限。问题基本上定位了,是因为containerd文件没有执行权限导致的错误

问题解决

通过使用chmod a+x containerd 给containerd 文件添加执行权限,然后再继续启动Docker看下日志,发现runc文件也是同样的问题。20220225095723.png

于是我们给docker相关的文件添加执行权限,然后重新启动dockerd &

[root@localhost bin]# chmod a+x containerd-shim
[root@localhost bin]# chmod a+x ctr
[root@localhost bin]# chmod a+x docker
[root@localhost bin]# chmod a+x dockerd
[root@localhost bin]# chmod a+x docker-init
[root@localhost bin]# chmod a+x runc
[root@localhost bin]# chmod a+x docker-proxy
[root@localhost bin]# dockerd &

终于,docker启动正常了,使用docker info 查看docker信息

20220225100442.png

原因分析

导致问题的原因是 /usr/bin 路径下,docker相关的可执行文件没有执行权限。 docker的安装是通过可执行特定版本的可执行镜像文件进行的(没有通过yum命令拉去镜像)。 反向追溯这些可执行文件来源,发现是要求解压后通过 sudo cp docker/* /usr/bin 命令将文件复制到$PATH下,那么问题就出在docker目录下的文件身上。 细问应该是部署人员从其他服务器上下载的这些文件,然后通过fpt将可执行文件直接上传后没有修改文件权限。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值