レジストリ名を指定せずにレジストリ上のイメージを検索するように docker を構成できますか?

レジストリ名を指定せずにレジストリ上のイメージを検索するように docker を構成できますか?

docker レジストリをセットアップし、hellodockerそこに というプロジェクトをプッシュしました。別のマシンでレジストリにログインしましたが、プルしようとすると、フルネームを使用する必要がありますmydockerregistry.com/hellodocker

見つからないイメージをダウンロードできる場所としてレジストリを含めるように docker を構成する方法はありますか?

答え1

この目的にはお勧めしませんが、レジストリ ミラー設定を使用して Docker エンジンを構成することができます。CLI からはdockerd、これが--registry-mirrorフラグです。または、/etc/docker/daemon.json で、次のように設定できます。

{ "registry-mirrors": ["https://mydockerregistry.com"] }

daemon.json を構成する場合、変更を適用した後に Docker エンジンをリロードする必要があります。デスクトップ GUI では、これは画面上のオプションです。Linux からは、 を実行しますsystemctl reload docker

これには 2 つの注意点があります。

  1. 最初にレジストリ ミラーがポーリングされ、次にアップストリームの Docker ハブがポーリングされて、障害が発生した場合にイメージが検索されます。ミラーが不良イメージまたは古いイメージで応答した場合、Docker エンジンはそれを喜んで使用します。

  2. mydockerregistry.com/library/hellodockerリポジトリ プレフィックスのないイメージは docker ライブラリから取得され、ではなくミラーが検索されますmydockerregistry.com/hellodocker。したがって、次の操作を行う必要があります。

    docker tag hellodocker:latest mydockerregistry.com/library/hellodocker:latest
    docker push mydockerregistry.com/library/hellodocker:latest
    

ミラーリングとキャッシュについて説明したプレゼンテーションがこちらにあります。役に立つと思います。

関連情報