Docker基本操作

本文介绍Docker最常用的三个基本操作docker login、docker pull、docker push以及如何登录企业版实例。通过认识镜像的基本操作,您可以更熟练地使用容器镜像服务ACR。

背景信息

在使用容器镜像服务之前,需要先安装Docker。关于如何安装Docker,请参见:

docker login

以阿里云杭州地域企业版实例为例,说明如何登录Docker。

  1. 指明企业版实例域名,并输入您的用户名和登录密码。

    登录成功之后会显示Login Succeeded

    docker login <企业版实例名称>-registry.cn-hangzhou.cr.aliyuncs.com
    Username: ****@test.com
    Password:
    Login Succeeded
    说明
    • 您可以在访问控制页面获取企业版实例域名。

    • 此处的登录密码是您在容器镜像服务控制台设置的,而不是您的阿里云登录密码。如果您忘记了镜像登录密码,您可以设置访问凭证。具体操作,请参见配置访问凭证

  2. 通过查看config.json文件,确认您的登录信息。

    执行以下命令。

    cat ~/.docker/config.json

    预期输出如下。

    {
        "auths": {
            "<企业版实例名称>-registry.cn-hangzhou.cr.aliyuncs.com": {
                "auth": "****"
            }
        }
    }        

docker pull

以镜像<企业版实例名称>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8为例,下载镜像的命令如下所示:

执行以下命令。

docker pull <企业版实例名称>-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 <企业版实例名称>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8            
说明
  • 登录的域名和您操作镜像的域名必须保持一致。例如只登录<企业版实例名称> -registry.cn-hangzhou.cr.aliyuncs.com的情况下,拉取和推送<企业版实例名称>-registry.cn-beijing.cr.aliyuncs.com的镜像,客户端会出现未授权的错误信息。

  • 如果您要下载Docker官方的镜像,请参见订阅海外源镜像

您可以执行docker images命令查看已下载的镜像(注意仓库坐标和Tag)。

docker images

预期输出如下。

REPOSITORY                                                     TAG                 IMAGE ID            CREATED             SIZE
<企业版实例名称>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent   0.8                 b9ba5841bdb0        24 hours ago        42.18 MB            

docker push

镜像在本地环境构建或是打包完成之后,就可以上传到企业版实例中。

上传的准备工作和下载一致,需要确认您对这个仓库有相应的拉取权限,否则执行命令后您会看到下面的报错信息。

执行以下命令。

docker push <企业版实例名称>-registry.cn-hangzhou.cr.aliyuncs.com/acs/agent:0.8

预期输出如下。

The push refers to a repository [<企业版实例名称>-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用户登录容器镜像服务企业版实例

  1. 使用RAM用户登录容器镜像服务控制台,在访问凭证页面设置登录密码。

  2. 使用[RAM用户名]@[企业别名]作为用户名进行登录。

    您可以在RAM控制台设置和查看阿里云账户的企业别名。如果没有企业别名,企业别名默认为阿里云账户的UID。

    假设RAM用户名为subaccount,企业别名为account-alias,则登录示例如下:

    docker login <企业版实例名称>-registry.cn-hangzhou.cr.aliyuncs.com
    Username: subaccount@account-alias
    Password:
    Login Succeeded