🐜
Dockerエラー「vmnetdが動作していません」
問題の概要
自分のDocker環境(macOS版Docker Desktop 4.34.2)でnginx
を起動しようとした際、以下のエラーが発生し、コンテナがStatus: Created
のまま起動しませんでした。
(HTTP code 500) server error - Ports are not available: exposing port TCP 127.0.0.1:443 -> 0.0.0.0:0: failed to connect to /var/run/com.docker.vmnetd.sock: is vmnetd running?: dial unix /var/run/com.docker.vmnetd.sock: connect: no such file or directory
このエラーは、Dockerのネットワーク管理デーモンであるvmnetd
が正しく動作していないか、システムがvmnetd
にアクセスできないために発生するようです。自分の場合、正しく動作するようにDocker Desktopを再インストールしたり、アクセスできるようにフルディスクアクセスを許可したりしてみましたが、問題は解決しませんでした。
問題の解決策
以下のコマンドを実行して、vmnetd
を再インストールすることで問題を解決できました。
sudo /Applications/Docker.app/Contents/MacOS/install vmnetd
このコマンドは、vmnetd
デーモンを再インストールし、必要なソケットファイル(/var/run/com.docker.vmnetd.sock
)を再生成します。これにより、Dockerが仮想ネットワークを正しくセットアップできるようになり、ポートのバインドに失敗する問題が解消されました。
注意: このコマンドを実行する際には、管理者権限が必要です。実行後、Docker Desktopを再起動するとより確実です。
Discussion