🐜

Dockerエラー「vmnetdが動作していません」

2024/09/21に公開

問題の概要

自分の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を再起動するとより確実です。

関連する問題のIssue

Discussion