開発中に何度もDocker Hubからpullを実行しているとpull制限に引っかかってしまいます→ダウンロード率制限
これを回避するため一度pullしたイメージを一旦Gitlabのコンテナレジストリに登録してから使うようにしていきたいと思います。
手順
# DockerHubから一度対象イメージををpull
docker pull <Docker Hubから落とすimage>
# 落としたイメージにtagをつける
docker tag <Docker Hubから落とすimage> <GitlabのURL>/<グループ名orユーザー名>/<リポジトリ名>/<image名:tag>
# gitlabにdocker login
docker login <GitlabのURL> # Gitlabのusername/passwordでログイン
# リポジトリのコンテナレジストリにpush
docker push <GitlabのURL>/<グループ名orユーザー名>/<リポジトリ名>/<image名:tag>
元のイメージ: python:3.8.10-slim
Gitlabのリポジトリ: https://gitlab.com/k8shiro/containerregistry-test
の場合、
docker pull python:3.8.10-slim
docker tag python:3.8.10-slim registry.gitlab.com/k8shiro/containerregistry-test/python:3.8.10-slim
docker login registry.gitlab.com
docker push registry.gitlab.com/k8shiro/containerregistry-test/python:3.8.10-slim
になります。
以後はdocker pull registry.gitlab.com/k8shiro/containerregistry-test/python:3.8.10-slim
で使えます。
その他
- パブリックなリポジトリでは誰でも、プライベートなリポジトリでは認証ありでのpullがデフォルトになります(プロジェクトのSettingsから変更可能)。
- Pull制限の回避という目的であれば、gitlab.comの場合Dependency Proxyを使う方法もあります。