こんにちは。やまゆです。
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 にログインしつつ、プルスルーキャッシュに対応しましょう。
- Amazon ECRに「プルスルーキャッシュリポジトリ」機能が追加されました #reinvent | DevelopersIO
- キャッシュに保存された Docker Hub イメージの pull | Artifact Registry documentation | Google Cloud
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 を用いて生成しました。