Docker関連の情報集め。

なんでクジラ?

Docker Desktop for Windows のアイコンはクジラですが、なんでクジラなんだろうと考えていました。
仮想マシンのイメージは C:\Users\Public\Documents\Hyper-V\Virtual hard disks にありますが、そのファイル名は MobyLinuxVM.vhdx です。VHD(Virtual Hard Disk)はもともと Windows XP 以降で一部のエディションに組み込まれていた Virtual PC が使用していた形式で、VHDX 形式はジャーナリングによって耐障害性をあげたり最大容量を増やしたりしたもののようです。

仮想マシンのファイル名が MobyLinuxVM ということで、クジラのアイコンは Moby 繋がりなんでしょうか。でも Moby-Dick は白いマッコウクジラですし、そこらへんどうなんでしょうか。ちなみにこのアイコンのモデルは "Moby Dock" という名前だそうです。CALL ME MOBY DOCK。Moby Dock が背中に載せているのはコンテナなので、Docker の構造を表しているようですね。

余談ですが、mobylinux を mobilinux(moblin)と勘違いして、そういえばこれって MontaVista がやってたんじゃなかったっけ?といろいろ調べて、結構時間を無駄にしてしまいました。ガラケー時代に NEC なんかと組んでましたね、MontaVista。

VHDXファイルの容量は小さくできない?

さて、いろいろイメージを pull してコンテナ作って、なんてやっていると VHDX ファイルがどんどん大きくなっていきます。家では ArchLinux 入れてちょっといじっただけで 1GB 超えました。もっとも、VirtualBox でManjaroLinux で遊んでたら、そちらは 21GB を超えているのでたいしたことないとも言えますが、C:ドライブは SSD なのであまり大きくなるようだと困ります。

次のやり方で圧縮できました。あらかじめ pull していたイメージとコンテナは全部削除しています。
  • まず、「Hyper-V マネージャー」で "MobyLinuxVM" を「停止」します。
  • 次に Windows PowerShell を管理者モードで開きます。
  • PS C:\WINDOWS\system32> cd "C:\Users\Public\Documents\Hyper-V\Virtual hard disks"
    PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> Optimize-VHD -path .\MobyLinuxVM.vhdx -Mode Full
  • これで圧縮(というか未使用領域の開放)が始まり、だいたい 613MB まで縮まりました。もしかしたらこれが最小サイズかもしれません。

コンテナを間違ってたくさん作っちゃったんだけど

start / stop じゃなくて run を使うと新しいコンテナができてしまいます。コンテナが増えると VHDX ファイルのサイズも増えます。なのでコンテナの状況をひと目で分かるようになると便利です。
これを行うのが Kitematic という GUI アプリのようです。ただ、このページにはちょっと気になることが。
Legacy desktop solution. Kitematic is a legacy solution, bundled with Docker Toolbox. We recommend updating to Docker Desktop for Mac or Docker Desktop for Windows if your system meets the requirements for one of those applications.
legacy という単語は、こういうコンテキストで使われたときには「時代遅れ」とか「過去の遺物」というニュアンスがあって、システム要件が合うなら Docker Desktop をおすすめします、とのことです。Kitematic の代わりとなるものは示唆されていませんが。

Kinematic はここからダウンロードするか、タスクバーの Docker アイコンを右クリックして出るメニューから "Kitematic" を選択すると ZIP ファイルをダウンロードします。
早速 ZIP を展開して、出てきた Kitematic.exe を実行してみましたが、どうやらコンテナが起動していないとダメっぽいです。ということでペンディング。

アプリの導入前に構築できるか試したい

それこそ仮想環境の出番ですね。今回も uWSGI が Windows をサポートしないことに気づいたというきっかけがあっていじり始めてますし。

随時思いついたら追加していきます。

ところで、Docker をいじったきっかけは uWSGI なんですが、もしも Docker を使うとして、どういう構成がいいかを考えていました。
まず、データベースはメンテナンスを考慮すると、ホスト側にインストールするしかないでしょう。

0 件のコメント:

コメントを投稿

Windowsでシンボリックリンクを試してみる。

きっかけは、1つのファイルを別の名前で起動したら違う動きになるようなスクリプトを書く、でした。  busybox なんかでは、同じ実行形式ファイルの名前を、lsにすればlsと同じ、cpとすればcpと同じ動作をするようにしてますが、Pythonスクリプトでそれと同じように argv...