开发者社区> 问答> 正文

Docker 镜像有哪些基本操作?

Docker 镜像有哪些基本操作?

展开
收起
小天使爱美 2020-03-25 12:12:47 988 0
1 条回答
写回答
取消 提交回答
  • 本文介绍 Docker 镜像最常用的三个基本操作 login、pull、push以及如何登录子账户。通过认识镜像的基本操作,您可以更熟练地使用容器镜像服务 ACR。 背景信息

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

    CentOS帮助链接
    Ubuntu帮助链接
    Debian帮助链接
    Fedora帮助链接
    

    docker login

    以阿里云杭州公网 Registry 为例,说明如何登录 Docker。

    指明 Registry 域名,并输入您的用户名和登录密码。
    
    登录成功之后会显示 Login Succeeded。
    
    docker@default-online:~$ docker login registry.cn-hangzhou.aliyuncs.com
    Username: sample@alibaba-inc.com
    Password:
    Login Succeeded
    
    说明 此处的登录密码是您在镜像仓库管理控制台 设置的,而不是您的阿里云登录密码。设置固定密码
    通过查看 config.json 文件,确认您的登录信息。
    
    docker@default-online:~$ cat ~/.docker/config.json
    {
        "auths": {
            "registry.cn-hangzhou.aliyuncs.com": {
                "auth": "XXXXXXXXXXXXXXXXXXXXXX"
            }
        }
    }        
    

    docker pull

    以容器服务的公共镜像 registry.cn-hangzhou.aliyuncs.com/acs/agent:0.8 为例,下载镜像的命令如下所示:

    docker@default-online:~$ docker pull registry.cn-hangzhou.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.aliyuncs.com/acs/agent:0.8

    说明

    如果您要下载 Docker 官方的镜像,参考下方相关链接中的加速器文档。
    如果您要下载公共仓库下的镜像,不登录 Registry 也是可以下载的。
    登录的 Registry 和您操作镜像的 Registry 必须保持一致。例如只登录 registry.cn-hangzhou.aliyuncs.com 的情况下,推送 registry.cn-beijing.aliyuncs.com 的镜像,客户端会出现未授权的错误信息。
    

    您可以使用下边的命令查看已下载的镜像(注意仓库坐标和 Tag)。

    docker@default-online:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry.cn-hangzhou.aliyuncs.com/acs/agent 0.8 b9ba5841bdb0 24 hours ago 42.18 MB

    docker push

    镜像在本地环境构建或是打包好之后,就可以上传到 Registry。

    上传的准备工作和下载基本一样。需要确认您有对这个仓库的读写权限或是读写授权。否则您会看到下面的报错信息。

    docker@default-online:~$ docker push registry.cn-hangzhou.aliyuncs.com/acs/agent:0.8 The push refers to a repository [registry.cn-hangzhou.aliyuncs.com/acs/agent] 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

    登录子账户

    使用子账户登录容器镜像服务控制台,设置对应 Registry 的登录密码。
    使用[子账户名]@[企业别名]作为用户名进行登录。
    
    您可以在 RAM 控制台设置和查看主账户的企业别名。如果没有企业别名,企业别名默认为主账户的 UID。
    
    假设子账户名为 subaccount,企业别名为 misaka-network,则登录示例如下:
    
    docker@default-online:~$ docker login registry.cn-hangzhou.aliyuncs.com
    Username: subaccount@misaka-network
    Password:
    Login Succeeded                    
    
    2020-03-25 12:23:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
Docker@Alibaba——超大规模Docker化的实战经验 立即下载