docker-compose upで「ERROR: for docker-in-docker Cannot create container for service docker-in-docker: b’Drive sharing failed for an unknown reason」とか出る場合の対処

Docker ツール

Windows10でdocker-compose upを実行したら以下のようなエラーが出ました。
対処法を書いていきます。

>docker-compose up -d nginx mysql phpmyadmin workspace
Creating laradock_docker-in-docker_1 ... error                                                                      Creating laradock_mysql_1            ...

ERROR: for laradock_docker-in-docker_1  Cannot create container for service docker-in-docker: b'Drive sharing failedCreating laradock_mysql_1            ... error                                                                      
ERROR: for laradock_mysql_1  Cannot create container for service mysql: b'Drive sharing failed for an unknown reason'

ERROR: for docker-in-docker  Cannot create container for service docker-in-docker: b'Drive sharing failed for an unknown reason'

ERROR: for mysql  Cannot create container for service mysql: b'Drive sharing failed for an unknown reason'
ERROR: Encountered errors while bringing up the project.

実行環境

実行環境は以下。

>docker -v
Docker version 19.03.5, build 633a0ea

>docker-compose -v
docker-compose version 1.24.1, build 4667896b

ホストマシンはWindows10 Proです。

エラーの内容

ERROR: for docker-in-docker  Cannot create container for service docker-in-docker: b'Drive sharing failed for an unknown reason'

エラーの内容は翻訳すると以下のようなもの。

  • サービスdocker-in-dockerのコンテナーを作成できません
  • 不明な理由でb’Drive共有が失敗しました

というわけで残念ながらエラーメッセージから原因を探るのが難しそうです。
ていうかbドライブってなによ。
ぐぐりましょう。

‘Drive sharing failed for an unknown reason #3174

こちらのissueが今回の問題と近そうです。

'Drive sharing failed for an unknown reason · Issue #3174 · docker/for-win
I have tried with the latest version of my channel (Stable or Edge) I have uploaded Diagnostics Diagnostics ID:B5EDDF18-C4CF-4711-B79E-9351539163DC/201901030939...

コメントの中で、DockerのSettingsでShared Drivesのチェックを入れるというものがあってので試してみます。

Applyボタンを押してアカウントのパスワードを入力すると、ファイアウォールにブロックされて、設定変更ができない。

A firewall is blocking file sharing between Windows and the containers. See documentation for more info.

「See documentation」の所のリンク先は以下のULRになっています。

Get started with Docker for Windows
Getting Started

ここから辿って下記のサイトに辿り着き

Settings to Windows Firewall to allow Docker for Windows to share drive
Windows Firewall is blocking my attempt to allows Docker for Windows to share C: on windows 10 machine. Works fine when Windows Firewall off. When its on I get...

どうも根本的に解決方法が間違っていたようで、上記の対応は忘れてPowerShellを管理者で起動して下記のコマンド実行しました。

> Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private

すると、「Drive sharing failed for an unknown reason」は出なくなりました。

>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.

nginxのエラーは出てますが、mysqlなどのコンテナは起動できたので解決とします。

コメント/ピンバック

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