2つのDockerコンテナーを作成しました。 1つ目はプライベートDockerレジストリを提供し、2つ目は公式のDockerレジストリのミラーです。
docker run -d --name registry -v /local/path/to/registry:/registry -e SETTINGS_FLAVOR=local -e STORAGE_PATH=/registry -p 5000:5000 registry
docker run -d --name mirror -v /local/path/to/mirror:/registry -e STORAGE_PATH=/registry -e STANDALONE=false -e MIRROR_SOURCE=https:/registry-1.docker.io -e MIRROR_SOURCE_INDEX=https://index.docker.io -p 5555:5000 registry
今、私は両方を組み合わせたいと思います。ユーザーpulls画像を使用する場合は常に、最初にプライベートレジストリを照会し、次にミラーを照会する必要があります。そして、画像がpushedの場合は、プライベートレジストリにのみプッシュする必要があります。
私はこれがどのようにできるかについての考えを持っていません。どんな助けでもありがたいです。
すべてのdocker Pushコマンドを強制的にプライベートレジストリにプッシュすることはできません。 1つの理由は、これらのレジスタをいくつでも持つことができるためです。まず、画像にタグを付けて、どこにプッシュするかをdockerに指示する必要があります(下を参照)。
実行中のプライベートレジストリとローカルミラーで動作するようにDockerホストを設定する方法は次のとおりです。
dockerstoreという(解決可能な)ホストでミラーとプライベートレジストリの両方を実行していると仮定しましょう。ポート5555でミラー、5000でレジストリ。
次に、clientマシンで、Dockerデーモンの起動に追加のオプションを渡す必要があります。あなたの場合:
--registry-mirror=http://dockerstore:5555
デーモンにdockerhubではなくローカルミラーを使用するように指示します。 ソース--insecure-registry dockerstore:5000
追加の設定なしでプライベートレジストリにアクセスします。参照 この答えイメージをプルすると、最初のソースがローカルミラーになります。 Dockerプルを実行して確認できます。
docker pull debian
出力には、イメージがミラーからプルされているというメッセージがあります-dockerstore:5000
最初にプライベートレジストリにプッシュするためには、画像にタグを付ける必要がありますレジストリのフルネームでプッシュされます。 タグの最初の部分 にドットまたはコロンがあることを確認して、イメージをプライベートレジストリにプッシュする必要があることをdockerに伝えます。
Dockerは「。」を探します。 (ドメイン区切り)または「:」(ポート区切り)は、リポジトリ名の最初の部分がユーザー名ではなく場所であることを学習します。
例:
30d39e59ffe2画像にdockerstore:5000/myapp:stableのタグを付けます
docker tag 30d39e59ffe2 dockerstore:5000/myapp:stable
プライベートレジストリにプッシュする
docker Push dockerstore:5000/myapp:stable
その後、あなたも引っ張ることができます
docker pull dockerstore:5000/myapp:stable
リポジトリ名はglobalであることが意図されています。つまり、リポジトリredis
は常にDocker Hubからの公式のRedisイメージを参照します。プライベートレジストリを使用する場合は、リポジトリ名の前にレジストリの名前を付けます。 localhost.localdomain:5000/myimage:mytag
。
そのため、プルまたはプッシュすると、関連するレジストリに自動的に移動します。ミラーの設定は簡単で、--registry-mirror=
引数を使用してURLをデーモンに渡すだけです。
これは企業ユーザーには完璧ではないため、これは (終了)Dockerの問題 です。
明確にするために、 docker documentation は次のことを確認します。
現在、別のプライベートレジストリをミラーリングすることはできません。中央ハブのみをミラーリングできます。