CentOS Linux 8 の EOL と
対応策の検討
OSC2022 Online/Spring
11 Mar 2022
@zembutsu
今日の流れ
• CentOS 8 は EOL 済み
• dnf が扱えないので、 vault リポジトリを参照する設定が必要
• 移行スクリプトのデモをします!
• CentOS 8 はどうしたら?
• 互換性のあるディストリビューションに移行 ( AlmaLinux, Rocky Linux, RHEL 等 )
• 別のディストリビューションに載せ替え ( Debian , Ubuntu 等)
• 諦める。達観の境地
• CentOS に一体何が起こったのか?
• 第3の道(みなさんご興味あれば)
2
CentOS 8 は EOL
3
CentOS 8 は End of Life (EOL)
• 2022年12月31日で EOL
• [2020/12/8] CentOS Project shifts focus to CentOS Stream – Blog.CentOS.org
https://blog.centos.org/2020/12/future-is-centos-stream/
• dnf / yum は使えなくなりました
4
# dnf update
CentOS Linux 8 - AppStream 73 B/s | 38 B 00:00
エラー: repo 'appstream' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist:
No URLs in mirrorlist
/etc/yum.respos.d/ 以下の書き換え
• 「mirror.centos.org」を「vault.centos.org」に変更する必要
5
# sed -i -r ¥
-e 's!^mirrorlist=!#mirrorlist=!' ¥
-e 's!^#?baseurl=http://(mirror|vault).centos.org/¥$contentdir/¥$releasever/!baseurl=
https://dl.rockylinux.org/vault/centos/8.5.2111/!i' ¥
/etc/yum.repos.d/CentOS-*.repo
# dnf update
補足資料:https://bit.ly/osc22on-centos
CentOS 8 はどうしたら?
6
私たちに残された選択肢 → ディストリビューション転換
1. Red Hat Enterprise Linux 8 を導入する
2. CentOS Stream 8 に移行する ( EOL 2024-05-31 )
3. 他の RHEL 派生ディストリビューションを使う
1. コミュニティ系 ( AlmaLinux 、 Rocky Linux など)
2. MIRACLE Linux、Oracle Linux、VzLinux
4. 他の Linux ディストリビューションに移行する
1. Debian GNU/Linux、Ubuntu、Gentoo 等コミュニティ系
2. openSUSE等
5. この機会にコンテナ化や CloudNative 的な開発・運用を目指す
7
現実問題と向き合う (逃げちゃだめだ)
• 業務で今「動いています」の場合
→RHEL 一択 or 有償サポートサービス ( MIRACLE LINUX, Oracle Linux )
• 開発用途です、個人用です「動けば良いです」の場合
• CentOS 代替ディストリビューション ( 主に RHEL 派生や近い関係 ) を検討
→ SentOS Stream
→ AlmaLinux OS
→ Rocky Linux
→ MIRACLE LINUX
→ Oracle Linux
• 他のディストリビューションを検討
• 死んだふりをする
8
現実問題と向き合う (逃げちゃだめだ)
• 業務で今「動いています」の場合
→RHEL 一択 or 有償サポートサービス ( MIRACLE LINUX, Oracle Linux )
• 開発用途です、個人用です「動けば良いです」の場合
• CentOS 代替ディストリビューション ( 主に RHEL 派生や近い関係 ) を検討
→ SentOS Stream
→ AlmaLinux OS
→ Rocky Linux
→ MIRACLE LINUX
→ Oracle Linux
• 他のディストリビューションを検討
• 死んだふりをする
9
CentOS 8 に対応している移行スクリプト
• 移行スクリプトを使い、CentOS 8 から移行
• CentOS Stream 8
• AlmaLinux OS
• Rocky Linux
• MIRACLE LINUX
• RHEL
• Oracle Linux
10
補足資料:https://bit.ly/osc22on-centos
CentOS 8 に対応している移行スクリプト
• 移行スクリプトを使い、CentOS 8 から移行
• CentOS Stream 8
• AlmaLinux OS
• Rocky Linux
• MIRACLE LINUX
• RHEL
• Oracle Linux
11
補足資料:https://bit.ly/osc22on-centos
CentOS に何が起こったのか?
12
A long long time ago...
• Red Hat Linux 1.0 (1994年11月3日リリース)
13
Red Hat Linux
1.0
A long long time ago...
• Red Hat Linux 1.0 (1994年11月3日リリース)
14
Red Hat Linux
1.0 2.0 3.0 4.0 5.0 6.0 7 8.0 9
A long long time ago...
• Red Hat Linux 1.0 (1994年11月3日リリース)
15
Red Hat Linux
1.0 2.0 3.0 4.0 5.0 6.0 7 8.0 9
Vine Linux
3.0
A long long time ago...
• Red Hat Linux 1.0 (1994年11月3日リリース)
• 2007年2月9日 Fedora Legacy プロジェクト終了
16
Red Hat Linux
1.0 2.0 3.0 4.0 5.0 6.0 7 8.0 9
Vine Linux
3.0
元々の経緯
• Community ENTerprise Operating System (2004年5月14日リリース)
17
RHEL
2.1
CentOS
2.1
元々の経緯
• Community ENTerprise Operating System (2004年5月14日リリース)
• 2007年2月9日 Fedora Legacy プロジェクト終了に伴い CentOS が注目
• CentOS FAQ 日本語版
http://pocketstudio.jp/centos/
18
RHEL
2.1
CentOS
2.1
19
20
8 December 2020
21
22
RHEL
CentOS
23
RHEL
CentOS
RHEL
CentOS Stream
私たちに残された選択肢
24
私たちに残された選択肢 → ディストリビューション転換
1. Red Hat Enterprise Linux 8 を導入する
2. CentOS Stream 8 に移行する ( EOL 2024-05-31 )
3. 他の RHEL 派生ディストリビューションを使う
1. コミュニティ系 ( AlmaLinux 、 Rocky Linux など)
2. MIRACLE Linux、Oracle Linux、VzLinux
4. 他の Linux ディストリビューションに移行する
1. Debian GNU/Linux、Ubuntu、Gentoo 等コミュニティ系
2. openSUSE等
5. この機会にコンテナ化や CloudNative 的な開発・運用を目指す
25
Rocky Linux - Introduction
Rocky Linux とは何か?
• コミュニティをベースにした開発・運用
• CentOS プロジェクト創設者 Gregory Kurtzer 氏が参画
• “Rocky Linux is a community enterprise operating system designed to be
100% bug-for-bug compatible with America's top enterprise Linux
distribution now that its downstream partner has shifted direction. “
• 2021年4月30日 8.3 RC リリース
• 2021年6月21日 8.4 GAリリース
• x86_64 、ARM 版提供中
• https://rockylinux.org/ja/
27
AlmaLinux - Introduction
AlmaLinux とは何か?
• Alma = “魂”
• “An open-source RHEL fork build by the team at CloudLinux,
inspired by the community”
• CloudLinux 社が開発・メンテナンス・スポンサード
• Project Lenix -> Alma Linux
• 4,000 社に CloudLinux OS を提供している経験
• コミュニティに対して、常に無料でオープンソースとして提供
• 2029年までサポートをコミット
• x86_64 、ARM 版提供中
29
AlmaLinux についての情報を手に入れるには?
• 公式サイト
• https://almalinux.org/
• Wiki
• https://wiki.almalinux.org/
• 公式ブログ
• https://almalinux.org/blog/
• Twitter
• https://twitter.com/almalinux
30
コンテナ? Docker?
クラウドネイティヴ対応
第3の道
31
© 2018 Cloud Native Computing Foundation
32 ※ https://github.com/cncf/presentations からの引用
コンテナ クラウド
ネイティブ
仮想化からクラウド・ネイティブへ
From Virtualization to Cloud Native
• クラウド・ネイティブ・コンピューティングはオープンソースの
ソフトウェアを積み重ね、次のために用います:
– アプリケーションをマイクロサービス(microservices)に分割し、
– 各パーツ自身をコンテナにパッケージし、
– リソース利用を最適化するために、動的に統合/
オーケストレート(orchestrate)する
オープン
ソース
IaaS
PaaS
オープン
ソース
PaaS
仮想化
2000 2001 2006 2009 2010 2011
非仮想化
ハードウェア
2013 2015
IaaS
33
“Dockerは銀の弾丸ではない”
• 前提として、Dockerは(いわゆる)「仮想化技術」とは異なる思想・技術背景
• 「コンテナ型仮想化」として表現・比較されるが [要出典]
• セキュリティ要件によっては、コンテナの利用より仮想化技術を選択すべき
• そのため、延命措置目的で CentOS 6 コンテナへの移植はすべきではない
• (特性を理解した上で)有用な場面もある
• 技術(再)検証や手順の(再)作成
• デプロイを素早く行いたい
• バッチ的な処理
• どうしても使わざるを得ない場合は
• Docker の基本概念を理解した上で利用する
• 丸ごと移植ではなく、移行のための一時措置
• 最新の公式ドキュメントが常に正しい
34
アプリケーションの“Build, Share, Run” を素早く簡単に
ハードウェアの
大阪弁と京都弁を「関西弁」と一括りにしたら、
みんな怒るとおもう
OS レベルの
CentOS on Docker にあたって
• 【最重要】 Docker は「仮想化技術」ではありません
• 「アプリケーション・コンテナ」と「システム・コンテナ」は考え方が違う
• 稼働中の環境を、丸っと移行は無理
• 例:initがない
• 例:セキュリティ対策や日々の運用をどうするか
• 既存環境を CentOS 6 のコンテナ移行ではなく、環境再構築検証の用途に
• 従来の手順書で再現ができるかどうか
• なければこの機会に手順化
• 技術習得の機会に
• いきなり未知のものをコンテナ化して取り組むより、
よく知っているもののほうが移行しやすい
• ただし、コンテナ活用の用途は「アプリケーション・コンテナ」に限るべきであり、
無理矢理すべてを「そのまま」コンテナ化すべきという話ではない
35
Docker 移行の考え方
• 前提として 『 適切に Docker を使うべき理由 』 がある
• CentOS 8 上で、アプリケーションを Docker イメージ化する
• Linux ホスト側の環境が変わっても、Docker イメージは実行可能
• 移行前に準備した Docker 対応アプリケーションは、
移行後も Docker コンテナとして実行可能
36
Dockerfile
Dockerfile にイメージ構築に必要な全ての命令を書く
• Dockerイメージは読み込み専用のイメージレイヤ群で構成
• 各イメージ・レイヤが Dockerfile の命令に相当する
• 記述例
37
FROM centos:centos6.10
Dockerfile
Dockerfile にイメージ構築に必要な全ての命令を書く
• Dockerイメージは読み込み専用のイメージレイヤ群で構成
• 各イメージ・レイヤが Dockerfile の命令に相当する
• 記述例
38
FROM centos:centos6.10
RUN yum update -y
レイヤは親子関係を持ち、依存・参照
Dockerfile
Dockerfile にイメージ構築に必要な全ての命令を書く
• Dockerイメージは読み込み専用のイメージレイヤ群で構成
• 各イメージ・レイヤが Dockerfile の命令に相当する
• 記述例
39
FROM centos:centos6.10
RUN yum update –y
CMD [“httpd-foreground”]
レイヤは親子関係を持ち、依存・参照
CentOS 8 の公式イメージを使った Dockerfile 例 40
Dockerfile
FROM centos:8
RUN dnf -y install httpd php
ADD https://raw.githubusercontent.com/docker-
library/httpd/077141ee37fca63972292c562ec0f632d0f831b1/2.4/httpd-foreground
/usr/local/bin/
RUN chmod 700 /usr/local/bin/httpd-foreground
RUN sed -i -e 's%^#LoadModule mpm_prefork_module
modules/mod_mpm_prefork.so%LoadModule mpm_prefork_module
modules/mod_mpm_prefork.so%' /etc/httpd/conf.modules.d/00-mpm.conf
RUN sed -i -e 's%^LoadModule mpm_event_module
modules/mod_mpm_event.so%#LoadModule mpm_event_module
modules/mod_mpm_event.so%' /etc/httpd/conf.modules.d/00-mpm.conf
EXPOSE 80
COPY ./html/* /var/www/html
CMD ["httpd-foreground"]
PHP7 の公式イメージを使った Dockerfile 例 41
Dockerfile
FROM php:7.2-apache
COPY ./html/* /var/www/html
CentOS 6 の公式イメージを使った Dockerfile 例 42
Dockerfile
FROM centos:centos6.10
RUN sed -i
'/^mirrorlist/s/^/#/;/^#baseurl/{s/#//;s/mirror.centos.org¥/centos¥/$releas
ever/vault.centos.org¥/6.10/}' /etc/yum.repos.d/*B* && ¥
yum install -y epel-release && ¥
yum update -y && ¥
cp -f /usr/share/zoneinfo/Japan /etc/localtime
RUN yum -y install php httpd
EXPOSE 80
RUN echo '<?php phpinfo(); ?>' > /var/www/html/index.php
ADD https://raw.githubusercontent.com/docker-
library/httpd/077141ee37fca63972292c562ec0f632d0f831b1/2.4/httpd-foreground
/usr/local/bin/
RUN chmod 700 /usr/local/bin/httpd-foreground
CMD ["httpd-foreground"]
PHP5 の公式イメージを使った Dockerfile 例 43
Dockerfile
FROM php:5.6-apache
COPY ./html/* /var/www/html
Docker 移行の考え方(ポイント)
• 前提として 『 適切に Docker を使うべき理由 』 がある
• CentOS 8 上で、アプリケーションを Docker イメージ化する
• Linux ホスト側の環境が変わっても、Docker イメージは実行可能
• 移行前に準備した Docker 対応アプリケーションは、
移行後も Docker コンテナとして実行可能
44
振り返り
45
46
RHEL
CentOS
RHEL
CentOS Stream
私たちに残された選択肢 → ディストリビューション転換
1. Red Hat Enterprise Linux 8 を導入する
2. CentOS Stream 8 に移行する ( EOL 2024-05-31 )
3. 他の RHEL 派生ディストリビューションを使う
1. コミュニティ系 ( AlmaLinux 、 Rocky Linux など)
2. MIRACLE Linux、Oracle Linux、VzLinux
4. 他の Linux ディストリビューションに移行する
1. Debian GNU/Linux、Ubuntu、Gentoo 等コミュニティ系
2. openSUSE等
5. この機会にコンテナ化や CloudNative 的な開発・運用を目指す
47
現実問題と向き合う (逃げちゃだめだ)
• 業務で今「動いています」の場合
→RHEL 一択 or 有償サポートサービス ( MIRACLE LINUX, Oracle Linux )
• 開発用途です、個人用です「動けば良いです」の場合
• CentOS 代替ディストリビューション ( 主に RHEL 派生や近い関係 ) を検討
→ SentOS Stream
→ AlmaLinux OS
→ Rocky Linux
→ MIRACLE LINUX
→ Oracle Linux
• 他のディストリビューションを検討
• 死んだふりをする
48
発表は以上です。気になることはありますか?
https://slideshare.net/zembutsu
49
補足資料
https://bit.ly/osc22on-centos

CentOS Linux 8 の EOL と対応策の検討

  • 1.
    CentOS Linux 8の EOL と 対応策の検討 OSC2022 Online/Spring 11 Mar 2022 @zembutsu
  • 2.
    今日の流れ • CentOS 8は EOL 済み • dnf が扱えないので、 vault リポジトリを参照する設定が必要 • 移行スクリプトのデモをします! • CentOS 8 はどうしたら? • 互換性のあるディストリビューションに移行 ( AlmaLinux, Rocky Linux, RHEL 等 ) • 別のディストリビューションに載せ替え ( Debian , Ubuntu 等) • 諦める。達観の境地 • CentOS に一体何が起こったのか? • 第3の道(みなさんご興味あれば) 2
  • 3.
  • 4.
    CentOS 8 はEnd of Life (EOL) • 2022年12月31日で EOL • [2020/12/8] CentOS Project shifts focus to CentOS Stream – Blog.CentOS.org https://blog.centos.org/2020/12/future-is-centos-stream/ • dnf / yum は使えなくなりました 4 # dnf update CentOS Linux 8 - AppStream 73 B/s | 38 B 00:00 エラー: repo 'appstream' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: No URLs in mirrorlist
  • 5.
    /etc/yum.respos.d/ 以下の書き換え • 「mirror.centos.org」を「vault.centos.org」に変更する必要 5 #sed -i -r ¥ -e 's!^mirrorlist=!#mirrorlist=!' ¥ -e 's!^#?baseurl=http://(mirror|vault).centos.org/¥$contentdir/¥$releasever/!baseurl= https://dl.rockylinux.org/vault/centos/8.5.2111/!i' ¥ /etc/yum.repos.d/CentOS-*.repo # dnf update 補足資料:https://bit.ly/osc22on-centos
  • 6.
  • 7.
    私たちに残された選択肢 → ディストリビューション転換 1.Red Hat Enterprise Linux 8 を導入する 2. CentOS Stream 8 に移行する ( EOL 2024-05-31 ) 3. 他の RHEL 派生ディストリビューションを使う 1. コミュニティ系 ( AlmaLinux 、 Rocky Linux など) 2. MIRACLE Linux、Oracle Linux、VzLinux 4. 他の Linux ディストリビューションに移行する 1. Debian GNU/Linux、Ubuntu、Gentoo 等コミュニティ系 2. openSUSE等 5. この機会にコンテナ化や CloudNative 的な開発・運用を目指す 7
  • 8.
    現実問題と向き合う (逃げちゃだめだ) • 業務で今「動いています」の場合 →RHEL一択 or 有償サポートサービス ( MIRACLE LINUX, Oracle Linux ) • 開発用途です、個人用です「動けば良いです」の場合 • CentOS 代替ディストリビューション ( 主に RHEL 派生や近い関係 ) を検討 → SentOS Stream → AlmaLinux OS → Rocky Linux → MIRACLE LINUX → Oracle Linux • 他のディストリビューションを検討 • 死んだふりをする 8
  • 9.
    現実問題と向き合う (逃げちゃだめだ) • 業務で今「動いています」の場合 →RHEL一択 or 有償サポートサービス ( MIRACLE LINUX, Oracle Linux ) • 開発用途です、個人用です「動けば良いです」の場合 • CentOS 代替ディストリビューション ( 主に RHEL 派生や近い関係 ) を検討 → SentOS Stream → AlmaLinux OS → Rocky Linux → MIRACLE LINUX → Oracle Linux • 他のディストリビューションを検討 • 死んだふりをする 9
  • 10.
    CentOS 8 に対応している移行スクリプト •移行スクリプトを使い、CentOS 8 から移行 • CentOS Stream 8 • AlmaLinux OS • Rocky Linux • MIRACLE LINUX • RHEL • Oracle Linux 10 補足資料:https://bit.ly/osc22on-centos
  • 11.
    CentOS 8 に対応している移行スクリプト •移行スクリプトを使い、CentOS 8 から移行 • CentOS Stream 8 • AlmaLinux OS • Rocky Linux • MIRACLE LINUX • RHEL • Oracle Linux 11 補足資料:https://bit.ly/osc22on-centos
  • 12.
  • 13.
    A long longtime ago... • Red Hat Linux 1.0 (1994年11月3日リリース) 13 Red Hat Linux 1.0
  • 14.
    A long longtime ago... • Red Hat Linux 1.0 (1994年11月3日リリース) 14 Red Hat Linux 1.0 2.0 3.0 4.0 5.0 6.0 7 8.0 9
  • 15.
    A long longtime ago... • Red Hat Linux 1.0 (1994年11月3日リリース) 15 Red Hat Linux 1.0 2.0 3.0 4.0 5.0 6.0 7 8.0 9 Vine Linux 3.0
  • 16.
    A long longtime ago... • Red Hat Linux 1.0 (1994年11月3日リリース) • 2007年2月9日 Fedora Legacy プロジェクト終了 16 Red Hat Linux 1.0 2.0 3.0 4.0 5.0 6.0 7 8.0 9 Vine Linux 3.0
  • 17.
    元々の経緯 • Community ENTerpriseOperating System (2004年5月14日リリース) 17 RHEL 2.1 CentOS 2.1
  • 18.
    元々の経緯 • Community ENTerpriseOperating System (2004年5月14日リリース) • 2007年2月9日 Fedora Legacy プロジェクト終了に伴い CentOS が注目 • CentOS FAQ 日本語版 http://pocketstudio.jp/centos/ 18 RHEL 2.1 CentOS 2.1
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
    私たちに残された選択肢 → ディストリビューション転換 1.Red Hat Enterprise Linux 8 を導入する 2. CentOS Stream 8 に移行する ( EOL 2024-05-31 ) 3. 他の RHEL 派生ディストリビューションを使う 1. コミュニティ系 ( AlmaLinux 、 Rocky Linux など) 2. MIRACLE Linux、Oracle Linux、VzLinux 4. 他の Linux ディストリビューションに移行する 1. Debian GNU/Linux、Ubuntu、Gentoo 等コミュニティ系 2. openSUSE等 5. この機会にコンテナ化や CloudNative 的な開発・運用を目指す 25
  • 26.
    Rocky Linux -Introduction
  • 27.
    Rocky Linux とは何か? •コミュニティをベースにした開発・運用 • CentOS プロジェクト創設者 Gregory Kurtzer 氏が参画 • “Rocky Linux is a community enterprise operating system designed to be 100% bug-for-bug compatible with America's top enterprise Linux distribution now that its downstream partner has shifted direction. “ • 2021年4月30日 8.3 RC リリース • 2021年6月21日 8.4 GAリリース • x86_64 、ARM 版提供中 • https://rockylinux.org/ja/ 27
  • 28.
  • 29.
    AlmaLinux とは何か? • Alma= “魂” • “An open-source RHEL fork build by the team at CloudLinux, inspired by the community” • CloudLinux 社が開発・メンテナンス・スポンサード • Project Lenix -> Alma Linux • 4,000 社に CloudLinux OS を提供している経験 • コミュニティに対して、常に無料でオープンソースとして提供 • 2029年までサポートをコミット • x86_64 、ARM 版提供中 29
  • 30.
    AlmaLinux についての情報を手に入れるには? • 公式サイト •https://almalinux.org/ • Wiki • https://wiki.almalinux.org/ • 公式ブログ • https://almalinux.org/blog/ • Twitter • https://twitter.com/almalinux 30
  • 31.
  • 32.
    © 2018 CloudNative Computing Foundation 32 ※ https://github.com/cncf/presentations からの引用 コンテナ クラウド ネイティブ 仮想化からクラウド・ネイティブへ From Virtualization to Cloud Native • クラウド・ネイティブ・コンピューティングはオープンソースの ソフトウェアを積み重ね、次のために用います: – アプリケーションをマイクロサービス(microservices)に分割し、 – 各パーツ自身をコンテナにパッケージし、 – リソース利用を最適化するために、動的に統合/ オーケストレート(orchestrate)する オープン ソース IaaS PaaS オープン ソース PaaS 仮想化 2000 2001 2006 2009 2010 2011 非仮想化 ハードウェア 2013 2015 IaaS
  • 33.
  • 34.
    “Dockerは銀の弾丸ではない” • 前提として、Dockerは(いわゆる)「仮想化技術」とは異なる思想・技術背景 • 「コンテナ型仮想化」として表現・比較されるが[要出典] • セキュリティ要件によっては、コンテナの利用より仮想化技術を選択すべき • そのため、延命措置目的で CentOS 6 コンテナへの移植はすべきではない • (特性を理解した上で)有用な場面もある • 技術(再)検証や手順の(再)作成 • デプロイを素早く行いたい • バッチ的な処理 • どうしても使わざるを得ない場合は • Docker の基本概念を理解した上で利用する • 丸ごと移植ではなく、移行のための一時措置 • 最新の公式ドキュメントが常に正しい 34 アプリケーションの“Build, Share, Run” を素早く簡単に ハードウェアの 大阪弁と京都弁を「関西弁」と一括りにしたら、 みんな怒るとおもう OS レベルの
  • 35.
    CentOS on Dockerにあたって • 【最重要】 Docker は「仮想化技術」ではありません • 「アプリケーション・コンテナ」と「システム・コンテナ」は考え方が違う • 稼働中の環境を、丸っと移行は無理 • 例:initがない • 例:セキュリティ対策や日々の運用をどうするか • 既存環境を CentOS 6 のコンテナ移行ではなく、環境再構築検証の用途に • 従来の手順書で再現ができるかどうか • なければこの機会に手順化 • 技術習得の機会に • いきなり未知のものをコンテナ化して取り組むより、 よく知っているもののほうが移行しやすい • ただし、コンテナ活用の用途は「アプリケーション・コンテナ」に限るべきであり、 無理矢理すべてを「そのまま」コンテナ化すべきという話ではない 35
  • 36.
    Docker 移行の考え方 • 前提として『 適切に Docker を使うべき理由 』 がある • CentOS 8 上で、アプリケーションを Docker イメージ化する • Linux ホスト側の環境が変わっても、Docker イメージは実行可能 • 移行前に準備した Docker 対応アプリケーションは、 移行後も Docker コンテナとして実行可能 36
  • 37.
  • 38.
    Dockerfile Dockerfile にイメージ構築に必要な全ての命令を書く • Dockerイメージは読み込み専用のイメージレイヤ群で構成 •各イメージ・レイヤが Dockerfile の命令に相当する • 記述例 38 FROM centos:centos6.10 RUN yum update -y レイヤは親子関係を持ち、依存・参照
  • 39.
    Dockerfile Dockerfile にイメージ構築に必要な全ての命令を書く • Dockerイメージは読み込み専用のイメージレイヤ群で構成 •各イメージ・レイヤが Dockerfile の命令に相当する • 記述例 39 FROM centos:centos6.10 RUN yum update –y CMD [“httpd-foreground”] レイヤは親子関係を持ち、依存・参照
  • 40.
    CentOS 8 の公式イメージを使ったDockerfile 例 40 Dockerfile FROM centos:8 RUN dnf -y install httpd php ADD https://raw.githubusercontent.com/docker- library/httpd/077141ee37fca63972292c562ec0f632d0f831b1/2.4/httpd-foreground /usr/local/bin/ RUN chmod 700 /usr/local/bin/httpd-foreground RUN sed -i -e 's%^#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so%LoadModule mpm_prefork_module modules/mod_mpm_prefork.so%' /etc/httpd/conf.modules.d/00-mpm.conf RUN sed -i -e 's%^LoadModule mpm_event_module modules/mod_mpm_event.so%#LoadModule mpm_event_module modules/mod_mpm_event.so%' /etc/httpd/conf.modules.d/00-mpm.conf EXPOSE 80 COPY ./html/* /var/www/html CMD ["httpd-foreground"]
  • 41.
    PHP7 の公式イメージを使った Dockerfile例 41 Dockerfile FROM php:7.2-apache COPY ./html/* /var/www/html
  • 42.
    CentOS 6 の公式イメージを使ったDockerfile 例 42 Dockerfile FROM centos:centos6.10 RUN sed -i '/^mirrorlist/s/^/#/;/^#baseurl/{s/#//;s/mirror.centos.org¥/centos¥/$releas ever/vault.centos.org¥/6.10/}' /etc/yum.repos.d/*B* && ¥ yum install -y epel-release && ¥ yum update -y && ¥ cp -f /usr/share/zoneinfo/Japan /etc/localtime RUN yum -y install php httpd EXPOSE 80 RUN echo '<?php phpinfo(); ?>' > /var/www/html/index.php ADD https://raw.githubusercontent.com/docker- library/httpd/077141ee37fca63972292c562ec0f632d0f831b1/2.4/httpd-foreground /usr/local/bin/ RUN chmod 700 /usr/local/bin/httpd-foreground CMD ["httpd-foreground"]
  • 43.
    PHP5 の公式イメージを使った Dockerfile例 43 Dockerfile FROM php:5.6-apache COPY ./html/* /var/www/html
  • 44.
    Docker 移行の考え方(ポイント) • 前提として『 適切に Docker を使うべき理由 』 がある • CentOS 8 上で、アプリケーションを Docker イメージ化する • Linux ホスト側の環境が変わっても、Docker イメージは実行可能 • 移行前に準備した Docker 対応アプリケーションは、 移行後も Docker コンテナとして実行可能 44
  • 45.
  • 46.
  • 47.
    私たちに残された選択肢 → ディストリビューション転換 1.Red Hat Enterprise Linux 8 を導入する 2. CentOS Stream 8 に移行する ( EOL 2024-05-31 ) 3. 他の RHEL 派生ディストリビューションを使う 1. コミュニティ系 ( AlmaLinux 、 Rocky Linux など) 2. MIRACLE Linux、Oracle Linux、VzLinux 4. 他の Linux ディストリビューションに移行する 1. Debian GNU/Linux、Ubuntu、Gentoo 等コミュニティ系 2. openSUSE等 5. この機会にコンテナ化や CloudNative 的な開発・運用を目指す 47
  • 48.
    現実問題と向き合う (逃げちゃだめだ) • 業務で今「動いています」の場合 →RHEL一択 or 有償サポートサービス ( MIRACLE LINUX, Oracle Linux ) • 開発用途です、個人用です「動けば良いです」の場合 • CentOS 代替ディストリビューション ( 主に RHEL 派生や近い関係 ) を検討 → SentOS Stream → AlmaLinux OS → Rocky Linux → MIRACLE LINUX → Oracle Linux • 他のディストリビューションを検討 • 死んだふりをする 48
  • 49.