
# 创建JDK8基础镜像并上传至SWR
#### 场景概述
在项目中，我们通常基于相同的基础镜像创建镜像。本章节将以JDK8基础镜像为例，介绍如何在CCE节点上创建JDK8基础镜像并上传至SWR。
#### 操作步骤
1. **购买一个CCE集群。**
   
   1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)。
   
   2. 在购买CCE集群页面配置集群参数，详细请参考[创建集群参数配置](https://support.huaweicloud.com/usermanual-cce/cce_10_0028.html)。
   
   3. 等待集群创建成功。创建成功后在集群管理下会显示一个运行中的集群，且集群节点数量为0。
   
   
   
   
2. **创建CCE节点。**
   
   集群创建成功后，您还需要在集群中创建运行工作负载的节点。CCE节点默认安装了Linux操作系统和Docker。我们可以用它创建基础镜像。
   *在下面的步骤中，我们将以Centos7.6为例，详细介绍如何创建JDK8基础镜像，并将它上传到SWR。*
   1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)。
   
   2. 单击[1]中创建的集群，进入集群控制台。
   
   3. 在左侧菜单栏选择节点管理，进入节点页签，单击右上角"创建节点"，在弹框中[配置节点的参数](https://support.huaweicloud.com/usermanual-cce/cce_10_0028.html)。
   
   4. 在网络配置中，选择"自动创建"1个弹性公网IP，带宽为5Mbit/s。
      图1网络配置   
      ![](https://support.huaweicloud.com/bestpractice-swr/zh-cn_image_0000001433888450.png "点击放大") 
   
   5. 单击"下一步: 规格确认"。
   
   6. 查看节点规格无误后，阅读页面上的使用说明，勾选"我已阅读并知晓上述使用说明和[《云容器引擎服务声明》](https://www.huaweicloud.com/declaration/tsa_cce.html)"，单击"提交"。
      等待节点创建成功。创建成功后在节点管理下会显示一个运行中的节点。
      
   
   
   
   
3. **下载JDK软件包。**
   
   1. 节点创建成功后，单击节点名称，进入云服务器详情页。
   
   2. 在云服务器详情页，单击右上角"远程登录"。
   
   3. 选择一种登录方式，单击"登录"。
   
   4. 以root用户登录弹性云服务器。
   
   5. 新建一个目录image。 **mkdir image**
      
   
   6. 进入image目录。 **cd image**
      
   
   7. 下载JDK软件包。 **wget <https://builds.openlogic.com/downloadJDK/openlogic-openjdk/8u352-b08/openlogic-openjdk-8u352-b08-linux-x64.tar.gz>**
      
   
   
   
   
4. **构建一个镜像。**
   
   1. 执行**vi dockerfile** 命令，编写一个Dockerfile，并写入以下信息：
      ```
      FROM centos                                                                                 #使用centos作为基础镜像
      RUN useradd -d /home/springboot -m springboot                                               #在工作目录下创建一个用户
      ADD ./openlogic-openjdk-8u352-b08-linux-x64.tar.gz /home/springboot                         #拷贝jdk软件包到镜像，并自动解压
      RUN chown springboot:springboot /home/springboot/openlogic-openjdk-8u352-b08-linux-x64 -R
      USER springboot                                                                             #指定用户为springboot
      ENV  JAVA_HOME=/home/springboot/openlogic-openjdk-8u352-b08-linux-x64                       #设置环境变量
      ENV   PATH=$JAVA_HOME/bin:$PATH  \                                 
           CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
      WORKDIR /home/springboot/                                                                   #指定镜像的工作目录
      ```
      
   
   2. 按**ESC** ,输入**:wq**,保存Dockerfile，并退出编辑。
   
   3. 执行下面的命令，构建一个镜像。 **docker build -t openjdk:8 .**
      
   
   4. 使用**docker images** 命令，查看镜像是否构建成功。
      图2查看镜像是否创建成功   
      ![](https://support.huaweicloud.com/bestpractice-swr/zh-cn_image_0000001424753686.png "点击放大") 
   
   
   
   
5. **登录[SWR控制台](https://console.huaweicloud.com/swr/#/swr/dashboard)，并创建一个组织。**
   
   *示例：这里我们创建一个名为testawa0306的组织* *。*
   
   
6. **上传镜像到[5]的组织下。**
   
   1. 以root用户登录[SWR控制台](https://console.huaweicloud.com/swr/#/swr/dashboard)。
   
   2. 为镜像打标签。 *示例如下：* ***docker tag openjdk:8 swr.cn-north-4.myhuaweicloud.com/testawa0306/openjdk:v8.8***
      
   
   3. 上传镜像到**[5]**的组织下。
   
   
   **docker push swr.cn-north-4.myhuaweicloud.com/testawa0306/*o*penjdk:v8.8**
   镜像上传成功后，我们可以在容器镜像服务控制台-"我的镜像"中找到刚刚上传成功的镜像。
   
   
7. **(可选）镜像上传成功后，您可以使用已上传的镜像[在CCE中部署工作负载](https://support.huaweicloud.com/usermanual-cce/cce_10_0006.html)**。
 
