Docker for Windows で Shared Drives のチェックが入らないときの対処法


概要

Docker for Windows でコンテナとローカルのファイルの橋渡しとなるボリューム機能を使うためには Shared Drives の設定が必須となります。
しかし、ある日突然 Shared Drives のチェックを入れて Apply を行ってもチェックが入らなくなってしまうことがあります。
ここではチェックが入らなくなってしまったときの対処法について記載します。

現象

Shared にチェックを入れて認証情報を入力後、しばらくするとチェックが自動で解除されてしまいます。
画面下にある Reset credentials で認証情報をリセットしても症状は改善しません。
マシンの再起動や docker のリスタートを行ってもチェックが入る気配はありません。

対処法

Reset にある Reset to factory defaults で docker の初期化を行うことでチェックが入るようになります。
ただし、 イメージやコンテナなどのデータがすべて消えます ので、初期化の前にはデータの退避を必ず行ってください。

初期化の完了後は、まず先に Shared Drives 以外の設定を済ませます。
これは、 Shared Drives の設定後にCPUやメモリなどの設定を変更すると docker が不安定になるためです。
Docker for Windows は非常にデリケートなので設定を変更する際は十分に注意してください。

最後に Shared DrivesShared にチェックを入れて、チェックが解除されないことを確認します。
コンテナを起動してローカルのファイルが見えるようになっていれば問題ありません。

> docker run --rm -v c:/Users:/data alpine ls /data