以下の内容はhttps://sabakunotabito.hatenablog.com/entry/2024/07/07/200352より取得しました。


砂に還った魂を呼び戻せ ~サポート終了CentOS 7コンテナ錬成秘儀~

どうやら、一筋縄ではいかない砂の迷宮に迷い込んだらしい。この顛末を書き残しておくか。

2024年6月30日。長年、多くの冒険者を支えてきた偉大な巨人「CentOS 7」が、ついにその役目を終え、砂に還った。新たな拠点への移住は完了したものの、時として我々は、古の巨人の知恵を借りたくなる時がある。しかし、もはや巨人をまるごと一体呼び戻すほどの土地(リソース)は残されていない。

ならば、どうするか。そうだ、Dockerという名の魂の器に、巨人の魂だけを封じ込め、いつでも呼び出せるようにすればいい。しかし、公式のオアシスが枯れた今、魂を維持するための水(yumリポジトリ)は涸れてしまっている。これは、その涸れた井戸に新たな水脈を掘り当て、サポート終了後の世界でも戦えるCentOS 7コンテナを錬成する、禁断の死霊術の記録である。

この羊皮紙のあらまし

この羊皮紙が導く者

  • サポートが終了しても、なおCentOS 7という古の巨人の力を必要とする者
  • yumが使えなくなり、古文書の宝庫への道を断たれた探求者
  • Dockerという魂の器に、あらゆる魂を封じ込める術に興味がある錬金術

第一の儀式:祭壇の準備(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

召喚した魂が、確かにそこに存在することを確認する。

もう一つの祭壇、WSL2 Ubuntuでも召喚陣は力強く稼働している

docker execsshで、蘇った巨人の魂と直接対話できれば、儀式は成功だ。

魂との対話が遅い時

もしsshでの対話が遅いと感じるなら、巨人の魂が住まう家(/etc/ssh/sshd_config)のUseDNSnoに設定し、不要な遠方への問いかけを止めさせるといい。

羊皮紙を巻く前に

サポートが終了し、砂に還ったはずのCentOS 7。しかし、Dockerという器と、vault.centos.orgという秘密の貯水槽の知識さえあれば、我々はいつでもその魂を呼び戻し、対話することができる。

WSL2 UbuntuへのDocker導入が驚くほど簡単になっていたことも、今回の旅の大きな収穫だった。 この羊皮紙が、古の巨人との対話を必要とする、未来の冒険者たちの助けとなることを願う。

東の空が白んできた。次のオアシスへ向けて、そろそろ荷造りを始めるとしよう。

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

ラクダの独り言

ご主人が「しーおーえすせぶんが砂に還った」とか言って、悲しむのかと思いきや、今度は黒い画面でその魂を無理やり呼び戻す儀式を始めたぜ。死んだものは、安らかに眠らせてやるのが一番だと思うんだがな。まったく、人間の執着心ってやつは…。おっと、足元にサソリがいやがった。危ない危ない。




以上の内容はhttps://sabakunotabito.hatenablog.com/entry/2024/07/07/200352より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14