Docker CLIを使用したイメージのプル
Docker CLIを使用してコンテナ・レジストリからイメージをプルする方法をご紹介します。
Docker CLIを使用して、Oracle Cloud Infrastructure Registry(コンテナ・レジストリとも呼ばれる)からイメージをプルします。
権限によって、コンテナ・レジストリからプルできるイメージが制御されます(リポジトリ・アクセスを制御するポリシーを参照)。作成したリポジトリ、パブリック・リポジトリ、および所属するグループがアイデンティティ・ポリシーによってアクセス権を付与されているリポジトリからイメージをプルできます。管理者グループに属する場合、テナンシの任意のリポジトリからイメージをプルできます。
コンテナ・レジストリは、Open Container Initiative準拠のレジストリです。その結果、Dockerイメージ、マニフェスト・リスト(マルチアーキテクチャ・イメージとも呼ばれる)、Helmチャートなど、Open Container Initiative仕様に準拠したアーティファクトを格納できます。このトピックの手順では、Dockerイメージを格納し、Docker CLIを使用することを前提としています。
Docker CLIを使用してコンテナ・レジストリからイメージをプルするには:
-
認証トークンがすでにある場合は、次のステップに進みます。それ以外の場合:
- コンソールの右上隅で「プロファイル」メニューを開き、「ユーザー設定」をクリックして詳細を表示します。
- 「認証トークン」ページで、「トークンの生成」をクリックします。
- 認証トークンのわかりやすい説明を入力します。機密情報の入力は避けてください。
- 「トークンの生成」をクリックします。新しい認証トークンが表示されます。
- 認証トークンは、後で取得できる保護された場所にただちにコピーしてください。コンソールに認証トークンが再度表示されないためです。
- 「トークンの生成」ダイアログを閉じます。
-
Dockerを実行しているクライアント・マシンのターミナル・ウィンドウで、
docker login <registry-domain>
を入力してコンテナ・レジストリにログインします。<registry-domain>
には、使用しているコンテナ・レジストリ・リージョンのリージョン・キーまたはリージョン識別子が含まれます。たとえば、docker login ocir.us-ashburn-1.oci.oraclecloud.com
です。リージョン別の可用性を参照してください。 - ユーザー名を求められたら、
<tenancy-namespace>/<username>
の形式でユーザー名を入力します。ここで、<tenancy-namespace>
はテナンシの自動生成されたオブジェクト・ストレージ・ネームスペース文字列です(テナンシ情報ページに表示されています)。たとえば、ansh81vru1zp/jdoe@acme.com
です。テナンシがOracle Identity Cloud Serviceとフェデレートされている場合は、<tenancy-namespace>/oracleidentitycloudservice/<username>
の書式を使用します。 - パスワードの入力を求められたら、前にコピーした認証トークンを入力します。
-
次の情報を入力して、Dockerイメージをコンテナ・レジストリからクライアント・マシンにプルします。
docker pull <registry-domain>/<tenancy-namespace>/<repo-name>:<version>
ここでは:
<registry-domain>
には、使用しているコンテナ・レジストリ・リージョンのリージョン・キーまたはリージョン識別子が含まれます。たとえば、ocir.us-ashburn-1.oci.oraclecloud.com
です。レジストリ・ドメインを参照してください。<tenancy-namespace>
は、イメージをプルするリポジトリを所有しているテナンシの自動生成されたオブジェクト・ストレージ・ネームスペース文字列です(テナンシ情報ページに表示されています)。たとえば、acme-devテナンシのネームスペースはansh81vru1zp
です。一部の古いテナンシでは、ネームスペース文字列は、すべて小文字のテナンシ名(acme-dev
など)と同じ場合があることに注意してください。ユーザーがテナンシにアクセスできる必要があることにも注意してください。<repo-name>
は、イメージのプル元のリポジトリ名(project01/acme-web-app
など)です。ユーザーがリポジトリにアクセスできる必要があることに注意してください(「リポジトリ」を参照)。<version>
は、コンテナ・レジストリからプルするイメージのバージョン識別子です(たとえば、v2.0.test
)。
例:
docker pull ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app:v2.0.test
docker pull
コマンドに<version>
を指定しない場合、Dockerはlatest
バージョン識別子を持つイメージをプルします。 -
docker images
を入力し、クライアント・マシン上のイメージのリストにプルしたばかりのイメージが含まれることを確認して、イメージがコンテナ・レジストリからプルされたことを確認します。例:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ocir.us-ashburn-1.oci.oraclecloud.com/ansh81vru1zp/project01/acme-web-app v2.0.test 8e0506e14874 1 minute ago 162.6 MB acme-web-app latest 8e0506e14874 2 hours ago 162.6 MB acme-web-app v1.0 7d9495d03763 2 hours ago 162.6 MB <none> <none> 6ebd328f833d 5 hours ago 162.6 MB hello-world latest 80b84820d442 5 weeks ago 890 B