30

docker builddocker ハブの代わりにプライベート レジストリからイメージをプルする方法はありますか?

ip:portプライベート レジストリをデプロイしましたが、Dockerfile のFROM指示で固有の名前を付けないようにしたいと考えています。docker buildオプションまたは docker 環境変数がデフォルトのレジストリを変更することを期待していました。

4

3 に答える 3

16

私は2019年に同じ問題に直面していました。引数(ARG)を使用してこれを解決しました。
https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
引数を使用すると、FROM 行で使用できるオプションのパラメーターを (デフォルトで) 設定できます。

Dockerfile-プロジェクト-dev

ARG REPO_LOCATION=privaterepo.company.net/
ARG BASE_VERSION=latest
FROM ${REPO_LOCATION}project/base:${BASE_VERSION}
...

私のユースケースでは、通常はプライベート リポジトリからプルしたいと考えていますが、Dockerfile で作業している場合は、Dockerfile の FROM 行を変更することなく、自分のマシン上のイメージからビルドできるようにしたい場合があります。 . ビルド時にローカル マシンでイメージを検索するように Docker に指示するには、次のようにします。

docker build -t project/dev:latest -f ./Dockerfile-project-dev --build-arg REPO_LOCATION='' .
于 2019-10-09T20:54:23.203 に答える
8

docker 関係者は一般的に、ローカル環境に関係なく、実行docker pull foo/barすると同じもの (つまり、foo/barDocker Hub からのイメージ) が得られることを確認したいと考えています。

これは、明示的なホスト名/ポートなしで Docker に他のものを使用させるオプションがないことを意味します。

于 2015-06-18T16:33:50.400 に答える