宝塔面板的docker服务无法启动问题排查 -威尼斯人2299

运维笔记评论41字数 3444阅读模式

问题概述

宝塔面板之前安装过docker,但是使用宝塔自带的docker面板点击启动按钮,docker的服务显示一直是无法启动的状态。

执行命令

[root@localhost ~]# systemctl status docker
unit docker.service could not be found.
[root@localhost ~]# sudo systemctl stop 
docker failed to stop docker.service: unit docker.service not loaded.

根据输出,看起来有一些问题阻止 docker 安装成功。然后可能的原因和解决方法:

重新安装

sudo yum install docker

执行结果

is this ok [y/d/n]: y
downloading packages:
(1/4): docker-common-1.13.1-209.git7d71120.el7.centos.x86_64.rpm                                                                                                | 101 kb  00:00:00     
(2/4): container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm                                                                                                     |  40 kb  00:00:00     
(3/4): docker-client-1.13.1-209.git7d71120.el7.centos.x86_64.rpm                                                                                                | 3.9 mb  00:00:03     
(4/4): docker-1.13.1-209.git7d71120.el7.centos.x86_64.rpm                                                                                                       |  17 mb  00:00:13     
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                                                   1.6 mb/s |  21 mb  00:00:13     
running transaction check
running transaction test
transaction test succeeded
running transaction
  正在安装    : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch                                                                                                                 1/4 
setsebool:  selinux is disabled.
  正在安装    : 2:docker-common-1.13.1-209.git7d71120.el7.centos.x86_64                                                                                                            2/4 
error unpacking rpm package 2:docker-common-1.13.1-209.git7d71120.el7.centos.x86_64
error: unpacking of archive failed on file /usr/bin/docker;6552e6d5: cpio: open
  正在安装    : 2:docker-client-1.13.1-209.git7d71120.el7.centos.x86_64                                                                                                            3/4 
error unpacking rpm package 2:docker-client-1.13.1-209.git7d71120.el7.centos.x86_64
error: docker-common-2:1.13.1-209.git7d71120.el7.centos.x86_64: install failed
error: unpacking of archive failed on file /usr/bin/docker-current;6552e6d5: cpio: open
error: docker-client-2:1.13.1-209.git7d71120.el7.centos.x86_64: install failed
/var/tmp/rpm-tmp.ln7tsh:行1: /usr/sbin/useradd: 权限不够
  正在安装    : 2:docker-1.13.1-209.git7d71120.el7.centos.x86_64                                                                                                                   4/4 
error unpacking rpm package 2:docker-1.13.1-209.git7d71120.el7.centos.x86_64
error: unpacking of archive failed on file /usr/bin/docker-containerd-current;6552e6d5: cpio: open
  验证中      : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch                                                                                                                 1/4 
  验证中      : 2:docker-common-1.13.1-209.git7d71120.el7.centos.x86_64                                                                                                            2/4 
  验证中      : 2:docker-1.13.1-209.git7d71120.el7.centos.x86_64                                                                                                                   3/4 
  验证中      : 2:docker-client-1.13.1-209.git7d71120.el7.centos.x86_64                                                                                                            4/4 
作为依赖被安装:
  container-selinux.noarch 2:2.119.2-1.911c772.el7_8                                                                                                                                   
失败:
  docker.x86_64 2:1.13.1-209.git7d71120.el7.centos        docker-client.x86_64 2:1.13.1-209.git7d71120.el7.centos        docker-common.x86_64 2:1.13.1-209.git7d71120.el7.centos

selinux问题: 输出中显示 setsebool: selinux is disabled.,这说明 selinux 已经禁用。如果您在系统上启用了 selinux,确保它处于活动状态。

文件解压问题: 输出中有多个 error unpacking rpm package 的错误,可能是由于文件解压缩问题导致的。这可能是由于之前的 docker 安装残留文件或其他问题引起的。

在重新运行安装脚本之前,尝试清理残留文件:

sudo rm -rf /usr/bin/docker*

执行命令结果:

[root@localhost ~]# sudo rm -rf /usr/bin/docker*
rm: 无法删除"/usr/bin/docker": 权限不够
rm: 无法删除"/usr/bin/docker-compose": 权限不够
[root@localhost ~]#

赋予用户权限:

如果你确实需要删除或修改这个文件,你需要先取消不可修改属性,然后再进行操作。可以使用以下命令取消不可修改属性:

sudo chattr -i 文件名

然后,你可以使用 rm 命令删除文件:

sudo rm 文件名

执行结果提示:

[root@localhost bin]# sudo rm docker
rm: 无法删除"docker": 权限不够
[root@localhost bin]#

在这种情况下,你遇到了权限问题,即使是使用超级用户权限 (root),也无法删除文件。这可能是因为文件或其所在的目录具有设置了不可修改 (immutable) 属性或其他特殊权限。

首先,确保你有对目录的写入权限。如果所在的目录也设置了不可修改属性,你可能需要取消该属性:

sudo chattr -i 目录名
[root@localhost bin]# ls -l docker
-rwxr-xr-x 1 root root 61867064 12月 13 2021 docker
[root@localhost bin]#

docker 文件的权限是 -rwxr-xr-x,即用户 root 具有读、写、执行权限,而组和其他用户只有读和执行权限。

检查所在目录的详细信息:

ls -ld 目录名

然后,检查目录的属性,确保它没有设置不可修改属性。如果设置了,你需要取消它:

sudo chattr -i 目录名

最后,再次尝试删除文件:

sudo rm 文件名

再次执行删除:

[root@localhost usr]# ls -ld bin
dr-xr-xr-x. 2 root root 61440 11月  3 03:10 bin

由于你无法在目录 bin 中写入,可能是因为这个目录的设置了不可写权限。你可以通过以下命令取消不可写权限:

sudo chmod  w bin

然后再次尝试删除文件:

sudo rm 文件名

结果成功了。产生原因就是因为系统残留了之前安装的docker系统服务。删除重新安装就可以了。

风险通知:非原创文章均为网络投稿真实性无法判断,侵权联系
免责声明:内容来自用户上传发布或新闻客户端自媒体,切勿!切勿!切勿!添加威尼斯人2299的联系方式以免受骗。

玩技微信群
官方微信交流群
weinxin
rainbow-shownow
玩技公众号
官方微信公众号
weinxin
playezu
 

发表评论

匿名网友
确定