4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

複数アカウントでDocker Desktop for Macを使っていて/var/run/docker.sockに繋がらないエラー

Posted at

はじめに

Docker Desktop for Macで /var/run/docker.sock に繋がらないエラーになり、それを解決したのでログとして残しておきます。
前提として、自分の環境では1つのMacの中にアカウントを2つ作り、その両方のアカウントそれぞれでDocker Desktopを使っていました。

環境情報

Docker Desktop for Macのバージョンは以下です。

Version

4.20.0 (109717)

Engine: 24.0.2

Compose: v2.18.1

Credential Helper: v0.7.0

Kubernetes: v1.25.9

エラー発生

ある日、いつもの様にMacを立ち上げ、Docker Desktop for Macを起動し、 docker-compose up -d を使うと /var/run/docker.sock に繋がらない旨のエラーが出ました。

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.project%3Dproject_name%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied

試行錯誤

permission deniedと言われているので、/var/run/docker.sock のパーミッションを調べてみます。

ls -l /var/run/docker.sock

lrwxr-xr-x 37 root daemon 2023-06-02 14:00 /var/run/docker.sock -> /Users/user_2/.docker/run/docker.sock

自分はMacに2つのアカウントがあり(ここでは2つのアカウント名をそれぞれ user_1, user_2 とします)、 user_1 でログインしているのに、 user_2 のdocker.sockが参照されているのでこれが怪しそうです。
ググってみると、sudoしてみるといいとあったのでしてみましたが、うまくいきません。

Cannot connect to the Docker daemon at unix:///Users/user_2/.docker/run/docker.sock. Is the docker daemon running?

シンボリックリンク先が user_2 のものになってるのがおかしそうなので、 user_1 のものにすればいいのでは?と思いやってみました。

sudo ln -si "$HOME/.docker/run/docker.sock" /var/run/docker.sock

予想通り、うまくいきました。
しかし、シンボリックリンクがどのタイミングで変わるかはわかりませんが、これ別アカウントにログインするたびに切り替えるのはしんどいよなあと思い解決策をググってみると、Docker Desktop for Macのgithubのissueに興味深い記述が。

Docker Desktop for Mac removed /var/run/docker.sock per 4.13.0 Release Notes: docs.docker.com/desktop/release-notes/#docker-desktop-4130 "By default Docker will not create the /var/run/docker.sock symlink on the host and use the docker-desktop CLI context instead."

バージョン4.13.0から /var/run/docker.sock のシンボリックリンクは作らなくなったそうです。
え、ということはもしかして、このsockファイルはいらない...??

sudo rm /var/run/docker.sock

user_1 のアカウントでDocker Desktopを起動したまま user_2 で問題なくDocker Desktopを起動し、 docker 関連のコマンドが問題なく動きました。

結論

バージョン4.13.0から /var/run/docker.sock のシンボリックリンクは作らなくなったので、消してしまいましょう。

sudo rm /var/run/docker.sock
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?