このトピックでは、Dockerで最も一般的な3つの操作、つまりdocker login、docker pull、docker pushについて説明します。 このトピックでは、Container Registry Enterprise Editionインスタンスにログインする方法についても説明します。 Dockerイメージの基本的な操作に慣れたら、Container Registryをより適切に使用できます。
背景情報
Container Registryを使用する前に、Dockerをインストールする必要があります。 Dockerのインストール方法の詳細については、以下のトピックを参照してください。
dockerログイン
次のセクションでは、中国 (杭州) リージョンにあるContainer Registry Enterprise Editionインスタンスにログインする方法の例を示します。
Container Registry Enterprise Editionインスタンスのドメイン名を指定し、ユーザー名とログインパスワードを入力します。
Container Registry Enterprise Editionインスタンスにログインすると、
ログイン成功
が表示されます。docker login <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com Username: ****@test.com Password: Login Succeeded
説明Container Registry Enterprise Editionインスタンスのドメイン名は、[アクセス制御] ページで取得できます。
ログインパスワードは、Container Registryコンソールで設定したパスワードですが、Alibaba Cloudアカウントのパスワードではありません。 設定したパスワードを忘れた場合は、アクセス資格情報を設定できます。 詳細については、「Container Registry Enterprise Editionインスタンスのアクセス資格情報の設定」をご参照ください。
config.jsonファイルを表示して、ログイン情報を確認します。
サンプルコマンド:
cat ~/.docker/config.json
期待される出力:
{ "auths": { "<Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com": { "auth": "****" } } }
ドッカー引き
次のサンプルコードでは、<Name of The Container Registry Enterprise Edition instanc e>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8
イメージをダウンロードする方法の例を示します。
サンプルコマンド:
docker pull <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8
期待される出力:
0.8: Pulling from acs/agent
5a026b6c4964: Already exists
e4b621e8d9cb: Already exists
8bc2fd04bdd4: Pull complete
a977b0087b3e: Pull complete
8f6e00ea13c6: Pull complete
875dd8c9666f: Pull complete
9c07bcabc35d: Pull complete
Digest: sha256:cac848bd31bccf2a041bda7b57e3051341093abde6859df9ee9d332dfec6ddd9
Status: Downloaded newer image for <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8
Container Registry Enterprise Editionインスタンスへのログインに使用するドメイン名は、イメージへのアクセスに使用するドメイン名と同じである必要があります。 たとえば、
<Name of the Container Registry Enterprise Editionインスタンス> -registry.cn-hangzhou.cr.aliyuncs.com
ドメイン名にログインして<Enterprise Editionインスタンスのnam e>-registry.cn-beijing.cr.aliyuncs.com
ドメイン名からイメージをプルおよびプッシュすると、クライアントにエラーメッセージが表示されます。 エラーメッセージは、イメージにアクセスする権限がないことを示します。Dockerの公式Webサイトからイメージを取得する場合は、「イメージタグの登録」をご参照ください。
docker images
コマンドを実行して、プルされたイメージを表示できます。 コマンド出力でリポジトリの場所とイメージタグを確認します。
docker images
期待される出力:
REPOSITORY TAG IMAGE ID CREATED SIZE
<Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent 0.8 b9ba5841bdb0 24 hours ago 42.18 MB
Docker push
オンプレミスのイメージをビルドまたはパッケージ化した後、Container Registry Enterprise Editionインスタンスにプッシュできます。
画像をプッシュする準備は、基本的には画像をプルする準備と同じである。 リポジトリに対する権限があることを確認してください。 それ以外の場合、次のコマンドを実行するとエラーメッセージが返されます。
サンプルコマンド:
docker push <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8
期待される出力:
The push refers to a repository [<Enterprise Edition instance name>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8]
359f80267111: Layer already exists
7e5fa28d90b8: Layer already exists
b20d7f600f63: Layer already exists
4a159b4f8370: Layer already exists
7c3712ebe877: Layer already exists
d91d130a53aa: Layer already exists
fcad8ad5a40f: Layer already exists
unauthorized: authentication required
RAMユーザーを使用してContainer Registry Enterprise Editionインスタンスにログインする
RAMユーザーとしてContainer Registryコンソールにログインします。 [アクセス資格情報] ページで、ログインパスワードを設定します。
ログインユーザー名として
<RAMユーザー >@< エンタープライズエイリアス>
を使用します。RAMコンソールでAlibaba Cloudアカウントのエンタープライズエイリアスを設定および表示できます。 使用可能なエンタープライズエイリアスがない場合、エンタープライズエイリアスはデフォルトでAlibaba CloudアカウントのUIDです。
RAMユーザーが
subaccount
で、エンタープライズエイリアスがaccoun-alias
であるとします。 次のサンプルコードは、ログオン例を示しています。docker login <Name of the Container Registry Enterprise Edition instance>-registry.cn-hangzhou.cr.aliyuncs.com Username: subaccount@account-alias Password: Login Succeeded