旅の途中、奇妙な依頼を受けた。「すでに砂に還ったはずの古き巨人の魂を、もう一度この世に呼び戻せないか」と。
2024年6月30日。 長年、多くの冒険者を支えてきた偉大な巨人「CentOS 7」(無償Linuxディストリビューション)が、ついにその役目を終え、砂に還った。 新たな拠点への移住は完了したものの、時として我々は、古の巨人の知恵を借りたくなる時がある。 しかし、もはや巨人をまるごと一体呼び戻すほどの土地(リソース)は残されていない。
ならばどうするか。 そうだ、Dockerという名の魂の器(コンテナ技術)に巨人の魂だけを封じ込め、いつでも呼び出せるようにすればいい。 しかし、公式のオアシスが枯れた今、魂を維持するための水(yumリポジトリ)は涸れてしまっている。 これは、その涸れた井戸に新たな水脈を掘り当て、サポート終了後の世界でも戦えるCentOS 7コンテナを錬成する、禁断の死霊術の記録である。
この羊皮紙のあらまし
- この羊皮紙のあらまし
- この羊皮紙が導く者
- 砂漠の道標
- 第一の儀式:祭壇の準備(Dockerインストール)
- 第二の儀式:魂の設計図(Dockerfile)
- 第三の儀式:魂の器の定義(docker-compose.yaml)
- 最終儀式:魂の召喚と対話
- 羊皮紙を巻く前に
- 砂漠で見つけた魔法のランプ
- ラクダの独り言
- ラクダの独り言
この羊皮紙が導く者
- サポートが終了しても、なおCentOS 7という古の巨人の力を必要とする者
yumが使えなくなり、古文書の宝庫への道を断たれた探求者- Dockerという魂の器に、あらゆる魂を封じ込める術に興味がある錬金術師
- WSL2環境でDocker開発環境を構築したい冒険者
砂漠の道標
- CentOS 7 - Red Hat Enterprise Linuxのクローンとして広く使われた無償Linuxディストリビューション。2024年6月30日にサポート終了。
- Docker - アプリケーションをコンテナという軽量な仮想環境で実行する技術。OSごと仮想化する従来の仮想マシンより軽量。
- yumリポジトリ - CentOS/RHELでソフトウェアパッケージを配布・管理するサーバー群。公式リポジトリは閉鎖された。
- vault.centos.org - サポート終了後もCentOS旧バージョンのパッケージを保管する公式アーカイブサーバー。
- Dockerfile - Dockerイメージ(コンテナの元となる設計図)を自動生成するための設定ファイル。
- docker-compose.yaml - 複数コンテナの構成や起動設定をまとめて管理するための定義ファイル。
- ssh(Secure Shell) - 暗号化された安全な通信でリモートサーバーにログインし操作するプロトコル。
第一の儀式:祭壇の準備(Dockerインストール)
今回はRocky Linux 9.4とWSL2 Ubuntu 24.04という、二つの祭壇で儀式を執り行う。 どちらの祭壇でも、まずはDockerという名の召喚陣を設置する必要がある。
Rocky Linuxの場合
Docker公式の古文書庫を追加し、必要な道具一式をインストールする。
$ sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
WSL2 Ubuntuの場合
今や儀式は驚くほど簡単になった。get-docker.shという魔法の巻物を手に入れ実行するだけだ。
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh
どちらの祭壇でも、儀式の後は召喚陣を起動し、術者(自分)にsudoなしで陣を操る権限を与えておくのを忘れずに。
第二の儀式:魂の設計図(Dockerfile)
ここが今回の死霊術の核心だ。 Docker Hub(公式コンテナイメージ配布サイト)からCentOS 7の魂の素を呼び出し、現代でも戦えるように改造を施す。 重要なのは、涸れた井戸(yumリポジトリ)を秘密の貯水槽(vault.centos.org)へと繋ぎ直し、魂との対話路(ssh)を確保することだ。
FROM centos:7 ENV container=docker ENV TZ=Asia/Tokyo WORKDIR /root # === 秘儀その1:涸れた井戸に、新たな水脈を === # mirrorlistを封印し、vault.centos.orgという秘密の貯水槽への水路を開く RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo # 魂に必要な武具を授ける RUN yum -y update RUN yum -y group install 'System Tools' 'Development Tools' 'Development Libraries' RUN yum -y install wget openssh-server openssl openssl-devel openldap openldap-devel unixODBC-devel vim RUN yum clean all # 日本語という魂の言葉を刻む RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 # === 秘儀その2:魂との対話路を確保する === # ssh接続のための鍵を生成 RUN ssh-keygen -A # 対話のための合言葉(root/root)を設定 RUN echo "root:root" | chpasswd # 対話の扉(ポート22)を開放 EXPOSE 22 # systemdという心臓が使えないため、sshdという魂の声を直接呼び出す CMD ["/usr/sbin/sshd", "-D"]
第三の儀式:魂の器の定義(docker-compose.yaml)
魂をどんな器に宿らせるかを定義する。 現世との繋がり(ポートフォワーディング)や、共有の宝物庫(ボリュームマウント)などを設定する。
services: dev: build: . container_name: centos7 volumes: - /home:/home ports: - "20022:22" tty: true restart: always
最終儀式:魂の召喚と対話
設計図と器の定義が済んだら、いよいよ魂を錬成し、召喚する。
# 魂の錬成(イメージビルド) $ docker compose build # 魂の召喚(コンテナ起動) $ docker compose up -d
召喚した魂が、確かにそこに存在することを確認する。
docker execやsshで、蘇った巨人の魂と直接対話できれば儀式は成功だ。
魂との対話が遅い時
もしsshでの対話が遅いと感じるなら巨人の魂が住まう家(/etc/ssh/sshd_config)のUseDNSをnoに設定し、不要な遠方への問いかけを止めさせるといい。
羊皮紙を巻く前に
サポートが終了し、砂に還ったはずのCentOS 7。しかし、この儀式を通して、私は改めて感じた。死んだはずの巨人の魂は、まだ確かに息づいている。
Dockerという器と、vault.centos.orgという秘密の貯水槽の知識さえあれば、我々はいつでもその魂を呼び戻し、対話することができる。これは単なる技術的回避策ではない。過去の叡智を未来へ繋ぐ、錬金術師の責務なのだ。
CentOS 7コンテナ錬成の要諦
- yumリポジトリの水脈切り替え - mirrorlistを封印し、vault.centos.orgへの直接接続を確立する
- ssh接続環境の構築 - 鍵生成、認証設定、ポート開放の三位一体で対話路を確保する
- docker-compose活用 - 器の定義を外部化し、再現性と保守性を両立させる
- WSL2環境での簡素化 - get-docker.shによる一発導入で、祭壇構築の障壁を除去する
注意すべき落とし穴
- UseDNS設定 - ssh接続が遅延する場合、sshdのDNS逆引きを無効化する必要がある
- セキュリティ - 本儀式のroot/root認証は開発専用。本番環境では鍵認証へ移行すること
- 保守性 - vault.centos.orgも永遠ではない。将来の移行計画も視野に入れるべきだ
まとめ
WSL2 UbuntuへのDocker導入が驚くほど簡単になっていたことも、今回の旅の大きな収穫だった。技術は常に進化し、かつて複雑だった儀式が、いつしか一行の呪文で完結する時代が来る。
だが、その呪文の裏に隠された原理を理解し、必要とあらば自ら水脈を掘り当てる力を持つこと。それこそが、真の錬金術師の証なのだと、私は信じている。
この羊皮紙が、古の巨人との対話を必要とする、未来の冒険者たちの助けとなることを願う。
おっと、東の空が白んできた。相棒が「そろそろ次のオアシスへ」と急かしている。今日はこのへんで筆を置くとしよう。
砂漠で見つけた魔法のランプ
- Docker Engine install on Rocky Linux | Rocky Linuxにおける召喚陣の設置法
- Install Docker Engine on Ubuntu | Ubuntuにおける召喚陣の設置法
ラクダの独り言
ラクダの独り言
ご主人が「せんとおーえすせぶんが砂に還った」とか言って、悲しむのかと思いきや、今度は黒い画面でその魂を無理やり呼び戻す儀式を始めたぜ。 死んだものは、安らかに眠らせてやるのが一番だと思うんだがな。まあ、それを言ったら、俺たちラクダだって砂漠で倒れた仲間の骨を踏み越えて旅を続けてるわけだが。 人間も獣も、結局は必要だから過去を掘り返すんだろうな。それが生きるってことなのかもしれねえ。 まったく、人間の執着心ってやつは…。おっと、喉が渇いてきやがった。