podman.sockなのにdirectory?

Red Hat

RHEL9.3の謎挙動で悩んでしまった。こちらの手違いが原因かも知れないが、書いておけば誰かの役に立つかもしれんので。

nginx-proxyがdocker.soketを利用して他のコンテナと通信するので、docker-compose用のyamlは以下のようになってる。

volumes:
  - /var/run/docker.sock:/var/run/docker.sock:ro

で、まあこれをRHEL上で動かすのにpodman-composeでupすると、以下のエラーになる。

crun: mount `/var/run/docker.sock` to `tmp/docker.sock`: Not a directory

で、/var/runを見ると、docker.sockは/run/podman/podman.sockへのリンクなんだけど、リンク先はディレクトリになっちゃってる。同じことは/var/run/podman.sockにも言えて、こちらもディレクトリになっちゃってる。そもそもソケットなんだから、/var/run/mcelog-clientのように、ls -alしたら先頭は”d”ではなく”s”じゃないとおかしい。

んで、このディレクトリを削除して、podman.serviceを再起動してもやはりディレクトリが作成される。podman.socketだけenableして

# systemctl list-unit-files | grep podman
podman-auto-update.service                 disabled        disabled
podman-clean-transient.service             disabled        disabled
podman-kube@.service                       disabled        disabled
podman-restart.service                     disabled        disabled
podman.service                             disabled        disabled
podman.socket                              enabled         disabled
podman-auto-update.timer                   disabled        disabled

マシンごと再起動したところ、/var/run/podman/podman.sockも、/var/run/podman/podman.sockもソケットになった。

とりあえず直ったけれど、何でだろう???

タイトルとURLをコピーしました