たびとの旅路 ~電脳砂漠の冒険譚~

フロッピー頼りに歩き、クラウドの地平を見つめる今日まで。見つけたオアシス、迷い込んだ砂の迷宮、全てこの羊皮紙に。

蜃気楼との決別 ~Docker Desktopを捨て、WSL2に拠点を築く~

旅の途中、興味深いオアシスを見つけた。忘れないうちに、この羊皮紙に記しておくとしよう。

私の旅路において、Docker Desktop for Windows(Windows用Docker統合環境)という巨大で便利な蜃気楼は、長らく有用なオアシスであった。だが、その蜃気楼は、時に牙を剥く。Cドライブ(システムドライブ)を食い尽くし、アップデートの度に自壊し、私の貴重な時間を、何度も無に帰したのだ。

もう、蜃気楼に惑わされるのは終わりだ。私は決意した。WSL2/Ubuntu(Windows上のLinux環境)という、より質実剛健な、しかし確かな大地に、自らの手で、直接Dockerの拠点を築き上げることを。 今となっては、get-docker.shという魔法の巻物(公式インストールスクリプト)一つで、この儀式は驚くほど簡単に終わる。 しかし、これは、まだその魔法が存在しなかった時代に、私が手探りで、一つ一つの呪文を詠唱し、拠点を築き上げた、古き冒険の記録である。

この羊皮紙のあらまし

この羊皮紙が導く者

  • Docker Desktop for Windowsという、肥大化した蜃気楼に、絶望した者
  • ディスク枯渇という名の悪夢から、解放されたいと願う探求者
  • かつての冒険者たちが、いかにしてDockerの拠点を築き上げていたか、その古の儀式に興味がある考古学者
  • WSL2/Ubuntuに直接Dockerを構築し、より軽量で安定した環境を求める開拓者
  • 現代の簡単な方法(get-docker.sh)が登場する前の、苦難に満ちた道のりを知りたい探求者

砂漠の道標

  • Docker Desktop for Windows - Windows用のDocker統合環境。便利だが肥大化しやすく、ディスク容量を大量消費する蜃気楼。
  • WSL2(Windows Subsystem for Linux 2) - Windows上でLinuxを動かす技術。より軽量で安定したDockerの拠点となる質実剛健な大地。
  • Ubuntu - 人気の高いLinuxディストリビューション。WSL2上で動作させる安定した基盤。
  • apt(Advanced Package Tool) - Ubuntuのパッケージ管理システム。ソフトウェアのインストール・更新を司る呪文。
  • docker-ce(Docker Community Edition) - Dockerの本体。コンテナ技術を提供する魂。
  • docker-compose - 複数のコンテナを一括管理するツール。複雑なアプリケーション構成を簡単に扱える神器。
  • iptables - Linuxのファイアウォール管理ツール。Dockerのネットワーク制御に必要な古の理。
  • get-docker.sh - Docker公式の自動インストールスクリプト。現代では、これ一つで全てが完了する魔法の巻物。

第一の儀式:聖なる武具を揃え、神々の印章を授かる

新たな拠点を築くため、私はまず、古の儀式に則り、大地を清めることから始めた。

apt(Ubuntuのパッケージ管理コマンド)の呪文を唱え、ca-certificates(証明書管理ツール)やgnupg-agent(暗号化ツール)といった、儀式に必要な聖なる武具を揃える。 次にcurl(ファイル取得コマンド)の呪文で、Dockerという神々の、公式GPGキー(暗号化された公開鍵)という名の印章を授かり、apt-keyで、その印章が本物であることを、この大地に知らしめた。 そしてadd-apt-repository(リポジトリ追加コマンド)の呪文で、神々の古文書庫(Dockerの公式パッケージリポジトリ)と、正式な契約を結ぶ。

準備は整った。 最後のapt installの詠唱と共に、docker-ce(Docker Community Edition:Docker本体)という名の、Dockerの魂そのものを、この大地に降臨させたのだ。

第二の儀式:新たなる魂を、正しい祭壇へ

aptで降臨するdocker-compose(複数コンテナ管理ツール)の魂は、古すぎて使い物にならないことがある。私は、GitHub(ソースコード共有サイト)という宝物庫から、最新のV2の魂を直接授かり、それを正しい祭壇へと祀り直す必要があった。

魂を祭壇に運び、その力を解放し、大地との糸を結ぶための呪文は、こうだ。

# 最新の魂を、正しい祭壇へ
$ sudo curl -L "https://.../docker-compose-..." -o /usr/libexec/docker/cli-plugins/docker-compose

# 魂に実行の力を与える
$ sudo chmod +x /usr/libexec/docker/cli-plugins/docker-compose

# 大地と魂の間に、新たな道(シンボリックリンク)を築く
$ sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/bin/docker-compose

第三の儀式:見えざる結界を突破する

この大地には、数々の見えざる結界が存在した。私は、それらを一つ一つ、解き明かしていった。

プロキシという名の結界

会社のネットワークという、強力な結界の中で旅をするには、/etc/default/dockerという古文書(Docker設定ファイル)に、通行手形(プロキシ設定)を記さねばならなかった。

iptablesという、古の理

Ubuntu 22.04以降の大地では、iptables(Linuxのファイアウォール管理ツール)の理が、古のものから新しきもの(nftables)へと変わっていた。Dockerの魂は、古の理でしか動けない。私はupdate-alternatives(システム設定切り替えコマンド)の呪文を唱え、時の流れを、古き良き時代へと巻き戻したのだ。

# 時の理を、古きものへと固定する
$ sudo update-alternatives --set iptables /usr/sbin/iptables-legacy

最終儀式:魂の鼓動を確認する

全ての儀式を終え、私はsudo service docker start(Docker起動コマンド)で魂に命を吹き込んだ。 そして、お決まりのhello-world(Docker動作確認用の最小コンテナ)を召喚する。その声が聞こえた時、私の新たな拠点は、ついに完成したのだ。

$ sudo docker run hello-world

Hello from Docker!
...

羊皮紙を巻く前に

Docker Desktop for Windowsとの、苦難に満ちた戦いの日々。その全てから、私はついに解放された。

この羊皮紙に記した儀式は、今となっては、ほとんど不要になった。公式のget-docker.shという魔法の巻物が登場し、わずか一行のコマンドで、全てが完了する時代が来たのだ。しかし、かつては、ここに記したような、一つ一つの呪文を、私自身が手探りで詠唱していた。その泥臭くも熱い道のりを、この羊皮紙は記録している。

WSL2/Ubuntuに直接Dockerを築くこの道は、Docker Desktopという巨大な蜃気楼から解放される、真の自由への道だった。ディスク容量の悩みも、アップデートの恐怖も、全てが消え去った。残ったのは、軽快で安定した、確かな拠点だけだ。

WSL2直接構築がもたらす価値

  1. 圧倒的な軽量性 - Docker Desktopと比較して、ディスク使用量が劇的に削減される
  2. 安定性の向上 - アップデートによる自壊から解放され、安心して運用できる
  3. 真の理解 - Dockerの仕組みを深く理解し、より高度な制御が可能になる
  4. 現代の簡単さ - get-docker.shにより、かつての複雑な儀式は不要に

現代の旅人への道標

今から始める冒険者へ:この羊皮紙の古の儀式は不要だ。以下の一行で、全てが完了する:

$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

しかし、先達がどのような苦難を乗り越えてきたか、その歴史を知ることには価値がある。

まとめ

Docker Desktop for Windowsという蜃気楼との決別は、決して後退ではなかった。むしろ、より軽快で、より安定した、真の自由への、一歩だったのだ。

かつての複雑な儀式は、今や魔法の巻物一つで完了する。しかし、その魔法が生まれる前に、我々先達が歩んだ道のりを、この羊皮紙は記録している。

この羊皮紙が、快適な旅しか知らない若い冒険者たちへ、我々先達が歩んだ、泥臭くも熱い道のりを伝える、ささやかな語り草となることを願う。

風向きが変わったようだ。この機を逃さず、次の砂丘へと旅立とう。

砂漠で見つけた魔法のランプ

羊皮紙の余白に書き足す

Docker Desktopに頼らずとも、GUIで管理したい?ならば、Portainerという名の、魂の翻訳機を導入するといい。その儀式は、また別の羊皮紙に記してある。

ラクダの独り言

ご主人が「昔は、こうやって苦労して拠点を築いたもんだ」なんて、やけに得意げに古い冒険譚を語っている。俺に言わせりゃ、昔の苦労話なんぞ、酒の肴にすりゃいいんだ。今が楽なら、それで万々歳じゃねえか。まったく、人間ってのは、終わった話が好きなもんだぜ。やれやれだぜ。