Docker for Windows で Shared Drives のチェックが入らない

Cドライブを share したいだけなんだけど・・。

インストール直後やファクトリーリセットした際など、 Shared Drives メニューから、ローカルドライブを docker コンテナにマウントするためにチェックを入れ Apply するわけですが、何度ユーザー&パスワードを入力して認証成功しても、指定のドライブに入れたはずのチェックが外れてしまうということがあります。

Shared Drives

私の環境ですと、一度でも Shared Drives の設定をミスると、何度やってもチェックが入らなくなり、Reset credentials... をクリックしてから行っても変わらず、ファクトリーリセットした直後のみ、 Apply ボタン押下後にチェックが入るというひどい状態を確認しました。(Version 17.11.0-ce-rc2-win37 (13978) Channel: edge 19d223a)

つまり、解決法としては、"ファクトリーリセット後に一度だけ Shared Drives を設定する" という方法になります。 ただ、私が試した限り、ファクトリーリセット後、 Shared Drives の設定の前に他の設定(CPU・メモリ等)を Apply したところ、コンテナの挙動が非常に不安定になりました。 Shared Drives 以外の設定は先にするのが良いようです。 以下、手順をまとめます。

具体的な解決手順

  1. ファクトリーリセット(設定メニュ → Reset → Reset to factory defaults...)
    ※もちろん、イメージやコンテナやボリュームが全て確実に消えますので、十分ご注意下さい。
  2. リセット完了後、先に Shared Drives 以外の設定を Apply
  3. Shared Drives の設定を Apply 。(初回の一度だけなら認証後にチェックが消えずに残るはず)
  4. このまま設定ウィンドウは閉じて完了。不安なら再起動など。
  5. 以下コマンドで正常にマウントされているかを確認する。
docker run --rm -v c:/Users:/data alpine ls /data

うまくマウントできていない場合、 docker run 時にエラーが出たり、 docker pull に失敗したり、マウントディレクトリが空になっていたり、はたまた、現在のカレントディレクトリだけなぜかマウントされるという摩訶不思議な状態も確認しました。 この最後の問題が発生していることを確認するには、上記確認コマンドで2つ以上のディレクトリ名が列挙されているかを確認すればOKです。通常はUsersディレクトリには複数のディレクトリがあるはずなので、1つしか出てこないのであれば問題が発生しているということです。

ネット上を徘徊していると同じ問題で困っている人が昔からいるようなのですが、バージョンアップを重ねてもこの不具合が直っていないということは、レアケースなのかもしれません。
ご参考に慣れば幸いです。

参考にさせていただいたサイト