勉強日記

チラ裏

Docker for Windowsを使っていてCドライブが枯渇したときの対処

サマリー

  • dockerにCドライブを食い尽くされた
  • Hyper-Vの設定変更で解決
    • Virutal hard disksをDドライブに移した


環境

現象

Cドライブの容量危機

  • 110GBのCドライブの空き容量が0になった
  • 110GB使い切るほどいろいろ入れてないはず
  • 空きを作って様子をみたところ、dockerを動かすと容量が圧迫されることが判明
    • docker build とかやってると、あれよあれよと減っていく
      • 朝いろいろ消して確保した4GBの空きが昼にはなくなった

原因

  • Hyper-VのVirtual Hard Disksが
    C:\Users\Public\Documents\Hyper-V\Virtual hard disks
    にあった
  • Docker for Windowsがデフォルトで64GB確保しようとしていた
    f:id:wand_ta:20181206123055p:plain
    タスクトレイ->クジラのアイコン右クリック->Settings->Advanced

やったこと

Virtual Hard DiskをDドライブに移す

  1. Docker for Windowsを止める
    1. タスクトレイのクジラのアイコン右クリック
    2. Quit Docker Desktop
  2. Hyper-Vマネージャーを開く
    f:id:wand_ta:20181206122400p:plain
  3. Hyper-Vの設定」を開く
    f:id:wand_ta:20181206122443p:plain
  4. 「仮想ハードディスク」を選択
  5. 「仮想ハードディスクのファイルを保存するために規定のフォルダーを指定します」が
    C:\Users\Public\Documents\Hyper-V\Virtual hard disks
    とかになっているのを
    D:\Users\<UserName>\Documents\Hyper-V\Virtual hard disks
    とかに変更
    f:id:wand_ta:20181206122548p:plain
  6. 仮想ハードディスクファイルを変更後の場所に移す
    • MobyLinuxVM.vhdxという名前だった
  7. Docker for Windowsを再度起動

結果

  • Cドライブが35GB空いた
    • Dockerは64GB確保しようとしていたので足りるわけがなかったのである
      f:id:wand_ta:20181206122717p:plain

APPENDIX

  • Hyper-Vの設定を行わずとも、Docker for Windwosの設定で完結できたかも
    • Disk image max sizeを64GBから16GB等に減らす
      • ただし、減らす場合、imageはすべて失われる
        f:id:wand_ta:20181206122702p:plain