【エラー解決】CentOS 7 のリポジトリ404を修正し、Dockerで利用し続ける方法

こんにちは、堀部です。

CentOS 7が2024年6月30日にサポートを終了しました。
それに伴い、CentOS 7を引き続き利用する場合は、CentOSのアーカイブリポジトリに切り替える必要があります。
この変更はDocker環境においても同様で、サポート終了後にCentOS 7のコンテナイメージを利用し続けるには、アーカイブリポジトリからパッケージを取得する設定が必要です。

本記事では、Dockerコンテナ内でCentOS 7を使い続けるために、アーカイブリポジトリへの切り替え手順を解説します。

前提条件

  • Dockerがインストールされていること
  • CentOS 7のイメージを使用していること

エラー内容

サポート期限切れの CentOS 7 を使用していると、以下のようなメッセージが出ます。

http://mirror.aktkn.sg/centos/7.9.2009/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 – Not Found
Trying other mirror.

エラー原因

このエラーメッセージは、CentOS 7 の通常リポジトリが閉鎖され、指定したURLが無効になっていることを示しています。そのため、CentOS 7をアーカイブリポジトリから取得するように変更します。

エラー解決方法

Dockerfile を変更

まずは Dockerfile で使用するリポジトリをアーカイブリポジトリに変更します。

RUN cd /etc/yum.repos.d/
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

コンテナを再起動

設定を反映するため、以下のコマンドでコンテナを起動または再起動します

docker compose up -d --build

エラーが出ずに正常にコンテナが起動できれば完了です。

まとめ

これでサポート終了後もCentOS 7を使用することができます。
 
ただしサポート期限は切れていますのでので、早めの移行を推奨します。
 
 
 
 
《関連記事》

Mailpitでメール送信テスト
技術
2025.8.29(Fri)

【PHP×Docker】Mailpitでメール送信テストを安全に行う方法

#PHP#ツール

PostgreSQL×Dockerで環境構築
技術
2023.2.21(Tue)

手順をすべて紹介。Windows環境にPostgreSQL×Dockerで環境構築する方法

#PHP#SQL

exited with code 1
技術
2022.12.9(Fri)

Dockerコンテナ作成時に exited with code 1 が発生

#技術

記事をシェア
MOST VIEWED ARTICLES