Docker CLIを使用したイメージのプル

Docker CLIを使用してコンテナ・レジストリからイメージをプルする方法をご紹介します。

Docker CLIを使用して、Oracle Cloud Infrastructure Registry(コンテナ・レジストリとも呼ばれる)からイメージをプルします。

権限によって、コンテナ・レジストリからプルできるイメージが制御されます(リポジトリ・アクセスを制御するポリシーを参照)。作成したリポジトリ、パブリック・リポジトリ、および所属するグループがアイデンティティ・ポリシーによってアクセス権を付与されているリポジトリからイメージをプルできます。管理者グループに属する場合、テナンシの任意のリポジトリからイメージをプルできます。

ノート

コンテナ・レジストリは、Open Container Initiative準拠のレジストリです。その結果、Dockerイメージ、マニフェスト・リスト(マルチアーキテクチャ・イメージとも呼ばれる)、Helmチャートなど、Open Container Initiative仕様に準拠したアーティファクトを格納できます。このトピックの手順では、Dockerイメージを格納し、Docker CLIを使用することを前提としています。

Docker CLIを使用してコンテナ・レジストリからイメージをプルするには:

  1. 認証トークンがすでにある場合は、次のステップに進みます。それ以外の場合:

    1. コンソールの右上隅で「プロファイル」メニューを開き、「ユーザー設定」をクリックして詳細を表示します。
    2. 「認証トークン」ページで、「トークンの生成」をクリックします。
    3. 認証トークンのわかりやすい説明を入力します。機密情報の入力は避けてください。
    4. 「トークンの生成」をクリックします。新しい認証トークンが表示されます。
    5. 認証トークンは、後で取得できる保護された場所にただちにコピーしてください。コンソールに認証トークンが再度表示されないためです。
    6. 「トークンの生成」ダイアログを閉じます。
  2. Dockerを実行しているクライアント・マシンのターミナル・ウィンドウで、docker login <registry-domain>を入力してコンテナ・レジストリにログインします。<registry-domain>には、使用しているコンテナ・レジストリ・リージョンのリージョン・キーまたはリージョン識別子が含まれます。たとえば、docker login ocir.us-ashburn-1.oci.oraclecloud.comです。リージョン別の可用性を参照してください。

  3. ユーザー名を求められたら、<tenancy-namespace>/<username>の形式でユーザー名を入力します。ここで、<tenancy-namespace>はテナンシの自動生成されたオブジェクト・ストレージ・ネームスペース文字列です(テナンシ情報ページに表示されています)。たとえば、ansh81vru1zp/jdoe@acme.comです。テナンシがOracle Identity Cloud Serviceとフェデレートされている場合は、<tenancy-namespace>/oracleidentitycloudservice/<username>の書式を使用します。
  4. パスワードの入力を求められたら、前にコピーした認証トークンを入力します。
  5. 次の情報を入力して、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バージョン識別子を持つイメージをプルします。

  6. 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