问题
在CentOS想使用Docker,但是安装完后Docker客户端无法连接到Docker守护进程
输入:
systemctl status docker
显示:
Authorization not available. Check if polkit service is running or see debug message for more information.
通过询问chatGPT和搜索各种博客以及csdn,均无法解决问题
解决
1、重新安装 polkit 服务(可选)
卸载旧版本的polkit:
sudo yum remove polkit
清除旧版本的polkit数据:
sudo rm -rf /var/lib/polkit-1/
安装新版本的polkit:
sudo yum install polkit
2、重新安装dbus服务(可选)
卸载旧版本的dbus:
sudo yum remove dbus
清除缓存:
sudo yum clean all
安装新版本的dbus:
sudo yum install dbus
3、重新安装systemd服务(可选)
sudo yum reinstall systemd
以上步骤确保系统服务正常
4、创建用户/组
getent group polkitd >/dev/null && echo -e "\e[1;32mpolkitd group already exists\e[0m" || {
groupadd -r polkitd && echo -e "\e[1;33mAdded missing polkitd group\e[0m" || echo -e "\e[1;31mAdding polkitd group FAILED\e[0m"; }
getent passwd polkitd >/dev/null && echo -e "\e[1;32mpolkitd user already exists\e[0m" || {
useradd -r -g polkitd -d / -s /sbin/nologin -c "User for polkitd" polkitd && echo -e "\e[1;33mAdded missing polkitd user\e[0m" || echo -e "\e[1;31mAdding polkitd user FAILED\e[0m"; }
5、对 polkit 的相关文件进行重新授权
rpm -Va polkit\* && echo -e "\e[1;32mpolkit* rpm verification passed\e[0m" || {
echo -e "\e[1;33mResetting polkit* rpm user/group ownership & perms\e[0m"; rpm --setugids polkit polkit-pkla-compat; rpm --setperms polkit polkit-pkla-compat; }
6、备份/var/run
mv /var/run /var/run.old
mv /var/lock /var/lock.old
7、重新创建符号链接
ln -s /run /var/
ln -s /run/lock /var/
8、同步更改
sync; sync
9、重启服务器
reboot
10、启动dbus、polkit
sudo systemctl start dbus
sudo systemctl start polkit
sudo systemctl start docker
sudo systemctl status docker