※2019/3/12追記:タイトル少し変えました。
最近Laravelの動作環境としてDocker + LaraDockを導入したのですが、Dockerの[Settings] - [Shared Drives]でドライブのマウントに失敗する事例があったので、その対処法のメモ。
※Windows版での内容になります。
※「個人のPCにインストールする」前提で書いてます。
「Firewall Detected」メッセージが表示される
現象
ドライブのマウント時に、下記メッセージが表示され、マウントができない。
A firewall is blocking file sharing between Windows and containers. See documantation for more info.
原因
セキュリティソフトのファイアウォールが原因で、ブロックされている。
対策
セキュリティソフトのファイアウォールの設定を変更し、Dockerを許可する
※設定方法はセキュリティソフトにより異なる。
【参考】カスペルスキー インターネットセキュリティの場合
- [設定] - [プロテクション] - [ファイアウォール]を選択
- [ネットワーク]をクリック
- 「(DockerNat)」と記載のあるネットワークを[編集]
- 「ネットワークの種別」を「許可するネットワーク」にする。
Microsoft 365 Businessでログインしている場合に、マウントのチェックが消える
現象
Microsoft 365 Businessアカウント(xxx@onmicorsoft.com)でログインしているユーザーでドライブのマウントを実行すると、
- 正しいユーザー名・パスワードを入力しても、該当ドライブにチェックが付かず、マウントできない。
- エラーメッセージは表示されない
原因
アカウント名とセキュリティ ID の間のマッピングに失敗している。
※詳細は下記サイトの「AzureAD の場合」を参照
対策
下記手順を実行する。
- アカウント名(AzureAD\(ユーザー名))の「ユーザー名」の部分のみのローカルアカウントを[コントロールパネル] - [ユーザーアカウント]から作成する。
- 再起動後、Microsoft 365 Businessアカウントでログインする(ローカルアカウントではない)。
- 作成したローカルアカウントの権限を「管理者」にする。(2019/3/12追記)
- ドライブマウント時に聞かれるユーザー名では、「ユーザー名」の部分のみ入力する。(「AzureAD\」は不要。なおパスワードは変更なし)
起動時に「Access Denied」メッセージが表示される(2019/3/12追記)
現象
Docker起動時に下記メッセージが表示され、Dockerを起動できない。
You are not allowed to Use Docker.
You must be in the "docker-users" group
原因
該当ユーザーがPC内での「docker-users」グループに所属していない。
(インストールユーザーと別ユーザーでログインした、など)
対策
下記手順で、該当ユーザーを「docker-users」に追加する。(管理者権限ユーザーで実行する)
- Windwosの[コンピュータの管理]を実行。([プログラム] - [管理ツール])
- 左ツリーから[ローカルユーザーとグループ] - [グループ]をクリック
- 右側の[docker-users]を右クリック - [プロパティ]を選択
- [追加]をクリックして、[ユーザーの追加]画面で該当ユーザーを選択して[OK]
- PCを再起動
ただ、dockerグループのユーザー追加は、セキュリティ上のリスクがある。
(下記サイト参照)
Windows版は上記対策しないとそもそも起動自体が出来ないのであれだけど、
今後は権限(実行可能なコマンド)設定なども可能になる?
僕の場合はこれで解決できたが、もちろん上記では解決できない現象はあるかも。
というか、Docker(やLaraDock)は便利な半面、いろいろあるみたいですね。次回は環境構築や上記以外のトラブルについてのブログを書く予定です。