Open3

ctop を使うと dial unix /var/run/docker.sock: connect: no such file or directory のエラーが出る

tamaco489tamaco489

M2 Macで、Rancher Desktop を利用
コンテナのサービスをいくつか起動した状態で ctop を実行すると以下のエラーになる。

┌ ctop - error ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
  │                                                                                                                                                                                                                                                          │
  │                                                                                                                                                                                                                                                          │
  │  [17:39:38 JST] Get "http://unix.sock/info": dial unix /var/run/docker.sock: connect: no such file or directory                                                                                                                                          │
  │                                                                                                                                                                                                                                                          │
  │  [17:39:38 JST] attempting to reconnect...                                                                                                                                                                                                               │
  │                                                                                                                                                                                                                                                          │
  │  [17:39:39 JST] Get "http://unix.sock/info": dial unix /var/run/docker.sock: connect: no such file or directory                                                                                                                                          │
  │                                                                                                                                                                                                                                                          │
  │  [17:39:39 JST] attempting to reconnect...                                                                                                                                                                                                               │
  │                                                                                                                                                                                                                                                          │
  │  [17:39:40 JST] Get "http://unix.sock/info": dial unix /var/run/docker.sock: connect: no such file or directory                                                                                                                                          │
  │                                                                                                                                                                                                                                                          │
  │  [17:39:40 JST] attempting to reconnect...                                                                                                                                                                                                               │
  │                                                                                                                                                                                                                                                          │
  │  [17:39:41 JST] Get "http://unix.sock/info": dial unix /var/run/docker.sock: connect: no such file or directory                                                                                                                                          │
  │                                                                                                                                                                                                                                                          │
  │  [17:39:41 JST] attempting to reconnect...                                                                                                                                                                                                               │
  │                                                                                                                                                                                                                                                          │
  │                                                                                                                                                                                                                                                          │
  └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

tamaco489tamaco489
$ ls -l /var/run/docker.sock
lrwxr-xr-x  1 root  daemon  17  8 19 09:01 /var/run/docker.sock -> ~/.rd/docker.sock

no such file or directory は表示されない

$ docker context ls
NAME                DESCRIPTION                               DOCKER ENDPOINT                                 ERROR
default             Current DOCKER_HOST based configuration   unix:///var/run/docker.sock
rancher-desktop *   Rancher Desktop moby context              unix:///Users/${user.name}/.rd/docker.sock

アクティブなコンテキストが rancher-desktop 側になっている。
ctop 側でこっち見せてあげないといけない模様。

一時的にそのシェルプロセス内だけでみたいとかの場合、以下で DOCKER_HOST の参照先を変更する。

export DOCKER_HOST=unix:///Users/${user.name}/.rd/docker.sock

※~/.zshrc とかに設定したらコンテナ起動するのか、しないのかまで確認してない(いけるのかな?)

tamaco489tamaco489

この状態で再度 ctop を実行すると無事起動することを確認。

     NAME                           CID          CPU                                     MEM                                     NET RX/TX                               IO R/W                                  PIDS UPTIME

   ⏵ hoge_go                     6205059a936b                    14%                                 995M / 10G               62M / 556K                              0B / 0B                                 53   18m13s
   ⏵ hoge_mysql                  465ea339a8b9                    0%                                  553M / 10G               1K / 0B                                 0B / 0B                                 37   18m11s
   ⏵ hoge_valkey                 2985f305c9fa                    0%                                   18M / 10G               2K / 0B                                 0B / 0B                                 5    18m13s

ここからコンテナにも入れるし、「→」「←」キーでログ見れたり、リソースの統計情報見れるのは便利