このトピックでは、最も一般的な 3 つの Docker 基本操作である docker login、docker pull、docker push と、Enterprise Edition インスタンスにログインする方法について説明します。イメージの基本操作を理解することで、Container Registry (ACR) をより使いこなせるようになります。
前提条件
-
Container Registry を使用する前に、Docker をインストールしておく必要があります。詳細については、「Docker および Docker Compose のインストールと使用」をご参照ください。
-
Container Registry Enterprise Edition インスタンスを作成済みであること。詳細については、「Enterprise Edition インスタンスの作成」をご参照ください。
docker login
このセクションでは、中国 (杭州) リージョンの Enterprise Edition インスタンスにログインする方法を説明します。
-
Enterprise Edition インスタンスのドメイン名を指定し、プロンプトが表示されたらユーザー名とログインパスワードを入力します。
説明-
Enterprise Edition インスタンスのドメイン名は
<instance-name>-registry.cn-hangzhou.cr.aliyuncs.comというフォーマットです。ドメイン名を確認するには、Container Registry コンソールにログインし、[アクセス制御] ページに移動します。 -
ログインパスワードは Alibaba Cloud アカウントのパスワードとは異なり、別途設定する必要があります。詳細については、「アクセス認証情報の設定」をご参照ください。
ログインに成功すると、
Login Succeededが表示されます。docker login <instance-name>-registry.cn-hangzhou.cr.aliyuncs.com Username: ****@test.com Password: Login Succeeded -
-
config.json ファイルをチェックして、ログイン情報を確認します。
次のコマンドを実行します。
cat ~/.docker/config.json期待される出力:
{ "auths": { "<instance-name>-registry.cn-hangzhou.cr.aliyuncs.com": { "auth": "****" } } }
docker pull
このセクションでは、例として <instance-name>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8 を使用して、イメージをプルする方法を説明します。
次のコマンドを実行します。
docker pull <instance-name>-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 <instance-name>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8
-
ログインに使用するドメイン名は、イメージのレジストリのドメイン名と一致している必要があります。例えば、
<instance-name>-registry.cn-hangzhou.cr.aliyuncs.comにログインしている場合、<instance-name>-registry.cn-beijing.cr.aliyuncs.comからイメージをプルまたはプッシュしようとすると、unauthorized (権限なし) エラーが発生します。 -
Docker の公式イメージをダウンロードするには、「アーティファクトサブスクリプションを使用した海外ソースからのイメージのプル」をご参照ください。
docker images コマンドを実行して、ダウンロードしたイメージを表示できます。リポジトリ名とタグに注意してください。
docker images
期待される出力:
REPOSITORY TAG IMAGE ID CREATED SIZE
<instance-name>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent 0.8 b9ba5841bdb0 24 hours ago 42.18 MB
docker push
ローカルでイメージをビルドした後、そのイメージを Enterprise Edition インスタンスにプッシュできます。
イメージのプルと同様に、イメージをプッシュするには、対象リポジトリへの必要な権限が必要です。権限がない場合、コマンドは失敗し、エラーが返されます。
次のコマンドを実行します。
docker push <instance-name>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8
次の出力は、認証エラーが原因でプッシュが失敗したことを示しています。
The push refers to a repository [<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 ユーザーとしてログイン
-
RAM ユーザーとして Container Registry コンソールにログインし、[アクセス資格情報] ページに移動してログインパスワードを設定します。
-
ログインするには、ユーザー名として
[RAM ユーザー名]@[アカウントエイリアス]を使用します。Alibaba Cloud アカウントのアカウントエイリアスは、RAM コンソールで設定および表示できます。アカウントエイリアスが設定されていない場合、デフォルトで Alibaba Cloud アカウントの UID が使用されます。
例えば、RAM ユーザー名が
subaccountで、アカウントエイリアスがaccount-aliasの場合、ログインコマンドは次のようになります。docker login <instance-name>-registry.cn-hangzhou.cr.aliyuncs.com Username: subaccount@account-alias Password: Login Succeeded