
# 如何上传Docker镜像至容器镜像服务？
本文以一个2048应用为例，讲述根据该应用编写Dockerfile文件构建镜像并上传至容器镜像服务的操作。您可以编写一个Dockerfile文件，以[alpine:3.7](https://hub.docker.com/_/alpine)为基础镜像，来构建一个2048容器镜像。
#### 前提条件
- 已安装Docker，如未安装可参见[安装Docker](https://support.huaweicloud.com/usermanual-swr/swr_01_0006.html)。
- 已获取2048应用，并将该镜像下载至本地。
 
#### 创建组织
组织用于隔离镜像，并为租户下用户指定不同的权限（读取、编辑、管理）。
- 读取：只能下载镜像，不能上传。
- 编辑：下载镜像、上传镜像、编辑镜像属性以及创建触发器。
- 管理：下载镜像、上传镜像、删除镜像或版本、编辑镜像属性、添加授权、添加触发器以及共享镜像。
1. 登录容器镜像服务控制台。
2. 在左侧菜单栏选择"组织管理"，单击右侧"创建组织"，在弹出的页面中填写"组织名称"，然后单击"确定"。 
   图1创建组织   
   ![](https://support.huaweicloud.com/gcs_faq/zh-cn_image_0161755993.png "点击放大")
   
   
 
#### 客户端上传镜像
docker客户端上传镜像，是指使用docker命令将镜像上传到容器镜像服务的镜像仓库。
本章节以**2048-demo:v1**镜像为例，介绍如何上传镜像。上传成功后，在"我的镜像"中显示已上传成功的镜像。
![](https://support.huaweicloud.com/gcs_faq/public_sys-resources/notice_3.0-zh-cn.png)
- 使用客户端上传镜像，镜像的每个layer大小不能超过10G。
- 上传镜像的Docker客户端版本必须为1.11.2及以上。
 
1. 连接容器镜像服务。 
   1. 登录容器镜像服务控制台。
   
   2. 在左侧菜单栏选择"我的镜像"，单击右侧"客户端上传"，在弹出的页面中单击"生成临时的docker login指令"，单击![](https://support.huaweicloud.com/gcs_faq/zh-cn_image_0149302212.png)复制docker login指令。docker login指令末尾的域名即为当前镜像仓库地址，记录该地址。
      图2获取docker login指令   
      ![](https://support.huaweicloud.com/gcs_faq/zh-cn_image_0149302214.png)
      ![](https://support.huaweicloud.com/gcs_faq/public_sys-resources/note_3.0-zh-cn.png)
      此处获取的docker login指令有效期为16小时，若需要长期有效的docker login指令，请参见[获取长期有效docker login指令](https://support.huaweicloud.com/usermanual-swr/swr_01_1000.html)。
      
   
   3. 在安装Docker的机器中执行上一步复制的docker login指令。 登录成功会显示"login succeeded"。
      
   
   
   
   

2. 在安装docker的机器给**2048-demo:v1** 镜像打标签。
   
   docker tag \[镜像名称:版本名称\] \[镜像仓库地址\]/\[组织名称\]/\[镜像名称:版本名称\]
   ![](https://support.huaweicloud.com/gcs_faq/public_sys-resources/note_3.0-zh-cn.png)
   镜像名称不支持多级目录格式，例如：镜像名称可命名为"2048-demo"，不可命名为"2048-demo/test"。
   样例如下：
   docker tag 2048-demo:v1 swr.cn-north-1.myhuaweicloud.com/group/2048-demo:v1
   其中：
   - swr.cn-north-1.myhuaweicloud.com为容器镜像服务的镜像仓库地址。
   
   - group为组织名称，如果该组织还没有创建，容器镜像服务会根据组织名称自动创建一个组织。
   
   - 2048-demo:v1 为镜像名称和版本号。
   
   
   
   

3. 上传镜像至镜像仓库。 
   docker push \[镜像仓库地址\]/\[组织名称\]/\[镜像名称:版本名称\]
   样例如下：
   docker push swr.cn-north-1.myhuaweicloud.com/group/2048-demo:v1
   终端显示如下信息，表明push镜像成功。
   ```
   6d6b9812c8ae: Pushed 
   695da0025de6: Pushed 
   fe4c16cbf7a4: Pushed 
   v1: digest: sha256:eb7e3bbd8e3040efa71d9c2cacfa12a8e39c6b2ccd15eac12bdc49e0b66cee63 size: 948
   ```
   返回系统，在"我的镜像"页面，执行刷新操作后可查看到对应的镜像信息。
   
   
 
