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 つの注意点があります。
最初にレジストリ ミラーがポーリングされ、次にアップストリームの Docker ハブがポーリングされて、障害が発生した場合にイメージが検索されます。ミラーが不良イメージまたは古いイメージで応答した場合、Docker エンジンはそれを喜んで使用します。
mydockerregistry.com/library/hellodocker
リポジトリ プレフィックスのないイメージは docker ライブラリから取得され、ではなくミラーが検索されますmydockerregistry.com/hellodocker
。したがって、次の操作を行う必要があります。docker tag hellodocker:latest mydockerregistry.com/library/hellodocker:latest docker push mydockerregistry.com/library/hellodocker:latest
ミラーリングとキャッシュについて説明したプレゼンテーションがこちらにあります。役に立つと思います。