インフィニットループ 技術ブログ

2025年03月19日 (水)

著者 : m-yamagishi

その FROM php:8 、 2025 年 4 月から動かなくなるかも?

こんにちは。やまゆです。

Docker 公式から下記のような記事が投稿されました。

Revisiting Docker Hub Policies: Prioritizing Developer Experience

要約

  • Dockerfile や compose.yaml で php:8 とベースイメージを指定すると、デフォルト設定では docker.io/library/php という、 Docker 公式のレジストリからイメージを pull してくる
  • 2025 年 4 月 1 日から、 docker.io からのイメージプル制限が厳しくなる
  • Docker Hub にログインしていない場合、 1 時間あたり 10 回まで
    • 未認証だと IP ベースで計算される可能性があるため、会社 IP 単位で 1 時間 10 回までになる可能性あり
  • Docker Hub にログインしている場合、 1 ユーザー 1 時間あたり 100 回まで
  • ログインしていればひとまずローカル環境での pull は大丈夫だが、ログインしていない環境(ローカルだけでなく、 CI/CD 環境や dev 環境、本番環境など全て含む)で FROM php:8 と指定していた場合、 Rate Limit 制限に引っ掛かってビルドが失敗する恐れがある

どうすれば良いか

1. Google Cloud のミラーリングリポジトリを指定する

キャッシュに保存された Docker Hub イメージの pull  |  Artifact Registry documentation  |  Google Cloud

これが一番楽だと思います。

/etc/docker/daemon.json に下記を設定

{
  "registry-mirrors": ["https://mirror.gcr.io"]
}

で docker 再起動

  • sudo service docker restart
  • または docker-machine restart

docker system info で Registry Mirrors が設定されているか確認

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 2
Server Version: 17.03.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
...
Registry Mirrors:
 https://mirror.gcr.io

これで Dockerfile や compose.yaml の変更なしで対応出来ます。ローカルはこれで十分。

CI/CD 環境はちゃんと Docker Hub にログインしつつ、プルスルーキャッシュに対応しましょう。

2. レジストリを明示する

  • レジストリは様々な企業・団体が提供しているのでレジストリを明示すると良い
  • AWS ECR Public Gallery はそこそこあるし検索性もある
  • もちろんそのレジストリにある image が信頼できるものか確認する必要がある(悪意を持った image を実行することは危険)
  • それは元々の docker.io もそうなので常に気を付けましょう

3. Docker Hub にアカウントを作ってログインする

  • Signup | Docker
  • 無料で 100 pulls/hour なので恐らく基本これで十分
  • Docker Desktop を使っている場合は既にログインしているかも?

参考資料

デフォルト動作

$ docker image pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
5a7813e071bf: Pull complete
Digest: sha256:72297848456d5d37d1262630108ab308d3e9ec7ed1c3286a32fe09856619a782
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

ということで注意喚起もかねて社内に共有したものをブログ記事にしてみました。 4 月にデプロイ出来なくなって阿鼻叫喚する前に対応してしまいましょう。

Docker を使った開発をしてみたい人は是非 IL 採用情報ページへ!

※アイキャッチ画像は Grok3 を用いて生成しました。

ブログ記事検索

このブログについて

このブログは、札幌市・仙台市の「株式会社インフィニットループ」が運営する技術ブログです。 お仕事で使えるITネタを社員たちが発信します!