質問
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