環境はWindows10pro、Docker for Desktopについて
Dockerを使えるようになろうと、記事やらリファレンスやら読みながら環境構築中の時の事
あれ、Cドライブの容量足りなくね?と気づいた。
もともとHyperVと仮想環境勉強の為にCPUは仮想環境の使用に耐えるものは用意したが、
パーティションはテキトーでCは128GBのSSD、Dに2TBだかで切っていた。
SSDに放り込んどきたいけど他のデータ整理めんどいしDockerimageって意外と容量取るんだね・・・。
imegeファイルだけでもDに移せないか試みる。
調べたらProgramDataのDockerフォルダ配下のdeamon.jsonファイルに
{
"data-root": "ディレクトリパス"
}
と記述するのが有力。
しかしディレクトリ漁ってもなかったので作成してDockerデーモン再起動。
反応せず。
なんでよと思いつつデーモン右をクリックしたらそれっぽいのがあった。
あー、これ直接編集すればいいのかと実行。
反映またされた挙句結局エラー。
意味わからんと、Windows版でなんか違うのかと調べること数時間
Docker for windowsと通常のDockerで仕様が全く違うことが判明。
そもそもWindowsで使えるコンテナは2種類あるらしい(もっとあるかも、無知なのでスルーして下さい)
1つはWindowsServerコンテナ、Dockerの技術が使われているWindowsServerで使えるコンテナ技術
2つ目がHyper-Vコンテナ、Windows10proでも使えるコンテナ
WindowsServerコンテナってのはそもそもDockerコンテナじゃない
これとHyper-Vコンテナを混同すると
あれ記事とかで書かれてること全くできねーんだけど!ってなるっぽい。
Hyper-Vコンテナっていうのはでlinuxコンテナをwindows使うために、
仕方なくHyper-Vで仮想ハードウェアを立て、その上にDockerimageをpullしたりコンテナを起動している模様。
つまりimageの格納場所は仮想のディスクイメージにという事らしい。
Dockerデーモン起動中にHyper-Vマネージャー見てみると確かになんか実行中になってるわ・・・。
ていうかDocker for windowsの要件にHyper-Vが条件になってる時点で気づかないとは愚鈍でしたねぇ。
よってvhdxをDドライブに移動してあげました。これでたぶん解決。
ハマった原因:構造も基礎知識も知らないまま使おうとした事。