Windows10でdocker-compose upを実行したら以下のようなエラーが出ました。
対処法を書いていきます。
ERROR: for laradock_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1 (47613c8491191e91fdbd37fbfe7613bb9e988d34937ce61f4ad9b8cdddaf8ecd): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
実行環境
実行環境は以下。
>docker -v
Docker version 19.03.5, build 633a0ea
>docker-compose -v
docker-compose version 1.24.1, build 4667896b
ホストマシンはWindows10 Proです。
エラーの内容
実行したコマンドとエラーは以下。
>docker-compose up -d nginx mysql phpmyadmin workspace
Creating laradock_docker-in-docker_1 ... done
Creating laradock_mysql_1 ... done
Creating laradock_workspace_1 ... done
Creating laradock_phpmyadmin_1 ... done
Creating laradock_php-fpm_1 ... done
Creating laradock_nginx_1 ... error
ERROR: for laradock_nginx_1 Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1 (47613c8491191e91fdbd37fbfe7613bb9e988d34937ce61f4ad9b8cdddaf8ecd): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1 (47613c8491191e91fdbd37fbfe7613bb9e988d34937ce61f4ad9b8cdddaf8ecd): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
ERROR: Encountered errors while bringing up the project.
エラーの意味を翻訳すると以下のような感じ。
- ドライバーはエンドポイントlaradock_nginx_1で外部接続のプログラミングに失敗しました
- ユーザーランドプロキシの起動中にエラーが発生しました:listen tcp 0.0.0.0:80:bind:アクセス許可で禁止されている方法でソケットにアクセスしようとしました。
よくわかりませんが80番ポートにアクセスできないような事を言っている。
他に使っているプログラムがないか調べましょう
netstatコマンドとtasklistコマンドを使って80番ポートを使っているアプリケーションを調べます。
>netstat -ano
アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
>tasklist /fi "PID eq 4"
イメージ名 PID セッション名 セッション# メモリ使用量
========================= ======== ================ =========== ============
System 4 Services 0 688 K
「System」がポート80を使ってしまっているようです。
これを解決する方法を紹介されている記事を見つけたので参考にさせて頂きます。
http://lovee7.blog.fc2.com/blog-entry-35.html
コントロールパネルを開き、プログラム→プログラムと機能の「Windowsの機能の有効化または無効化」を選択します。

「インターネット インフォメーション サービス」→「World Wide Web サービス」のチェックを外します。

OKボタンを押してしばらくすると変更が完了します。
改めてdocker-compose up
を試します。
>docker-compose up -d nginx mysql phpmyadmin workspace
laradock_docker-in-docker_1 is up-to-date
laradock_mysql_1 is up-to-date
laradock_workspace_1 is up-to-date
laradock_phpmyadmin_1 is up-to-date
laradock_php-fpm_1 is up-to-date
Starting laradock_nginx_1 ... done
WindowsはDocker使うにも一苦労です。
やっと開発の作業に移れます。
それでは、以上となります。
コメント/ピンバック