« AthlonマシンにWindows UpdateでMeltdown/Spectre対応をあてるとWindowsが起動しなくなる件 | トップページ | AlexaのカスタムスキルをTypeScriptで書く »

2018年2月 1日 (木)

Docker for Windowsでコンテナイメージの置き場所を変える

覚え書き。 Docker for Windowsで、コンテナイメージとかの置き場所を変更するにはどうするか。

  • Windowsコンテナの置き場所を変更する
  • Linuxコンテナの置き場所を変更する
  • 参考

Windowsコンテナの置き場所を変更する

構成ファイルの"graph"設定で指定する。 例えば、置き場所を"D:\Docker"にするには、 構成ファイルに以下のエントリを追加する。

{
  ... ,
  "graph": "D:\\Docker"
}

構成ファイルを編集するには、以下の方法がある。

  • 構成ファイルを直接編集する。構成ファイルのパスは"C:\ProgramData\Docker\config\daemon.json"
  • Docker for Windowsの設定GUIから編集する。設定GUIの「Deamon」で「Advanced」をオンにすると、構成を編集することができる。
【2018/02/05追記】 書き忘れていたが、 構成ファイルを編集する前に、Docker for WindowsのモードをWindows Containerにしておくこと。 デフォルトの構成ファイルはWindows Containerモードの初回実行時に生成されるし、 Linux Containerモードで設定GUIから構成ファイルを編集すると、Docker for Windowsが起動しなくなる。 (おそらく、Linux Containerの構成が変更されてしまう)

Linuxコンテナの置き場所を変更する

LinuxコンテナはHyper-VのVMの中で動く。 Docker for Windowsの稼働中にHyper-Vマネージャーを見ると、 "MobyLinuxVM"という名前のVMが動いているはず。 で、LinuxコンテナのイメージとかはこのVMの中に格納されるらしい。

というわけで、 Linuxコンテナのイメージの置き場所を変更するには、 "MobyLinuxVM"の仮想ディスクファイル(VHD)の置き場所を変えるということになる。

"MobyLinuxVM"はHyper-Vの設定に従ってDocker for Windowsが勝手に作成するので、 それはつまり、Hyper-Vの設定の「仮想ハードディスクのファイルを保存するための既定のフォルダー」を変更するということになる。

ちなみに、以下の手順を行うと、

  1. Docker for Windowsを停止させる。
  2. "MobyLinuxVM"の仮想ディスクファイルを削除する。
  3. Docker for Windowsを再起動する。("MobyLinuxVM"の仮想ディスクが再作成される)
  4. docker imagesを実行する。

pullしていたLinuxコンテナイメージがリストアップされなくなったので、 確かにLinuxコンテナイメージは"MobyLinuxVM"の中にあるみたい。

参考

あちこちに似たようなQAがあるけど、 以下が一番直接的だった。

Put "C:\ProgramData\Docker" on a different drive? Configuration option? (GitHub)

« AthlonマシンにWindows UpdateでMeltdown/Spectre対応をあてるとWindowsが起動しなくなる件 | トップページ | AlexaのカスタムスキルをTypeScriptで書く »

覚え書き」カテゴリの記事

Windows」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Docker for Windowsでコンテナイメージの置き場所を変える:

« AthlonマシンにWindows UpdateでMeltdown/Spectre対応をあてるとWindowsが起動しなくなる件 | トップページ | AlexaのカスタムスキルをTypeScriptで書く »