システムとアプリケーションを定期的に更新した後、docker(およびdocker-composeプラグイン)は機能しません。
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
sudo ls -la /var/run/docker.sock を使用する場合:
/var/run/docker.sock: No such file or directory (os error 2).
sudo systemctl status dockerを使用すると、他の場所にソケットが表示されます。
level=info msg="API listen on /run/docker.sock"
現在はリンクソリューションのみを使用しています。
sudo ln -s /run/docker.sock /var/run/docker.sock
Makeソケットアドレスはどこにありますか?このために変更できる設定はありますか?
ありがとうございます。
答え1
この更新プログラムの一部でこの問題が発生しました。とにかく、常に物理ディレクトリに/var/run
シンボリックリンクする必要があるため、ドッカーソケットは正しい場所にありません。/run
次の手順で問題を解決できました。
Dockerの停止/無効化/削除
sudo systemctl stop docker
sudo systemctl disable docker
sudo pacman -Rs docker
再起動
sudo rm -rf /var/run
再起動。
/var/run
もう別のシンボリックリンクls -al /var/run lrwxrwxrwx 1 root root 6 Sep 19 14:04 /var/run -> ../run
Dockerを再インストール/開始/有効にします。
sudo pacman -S docker
sudo systemctl start docker
sudo systemctl enable docker
docker.sock
これで、/run
docker グループの docker コマンドが再度正しく実行されます。ls -al /var/run/docker.sock srw-rw---- 1 root docker 0 Sep 19 14:06 /var/run/docker.sock
答え2
簡単に:
ln -sv /run /var/run
それ以上も以下でもない。