华为开发者空间:Java 项目 Docker 容器化,云主机实操教程

1 概述
1.1 背景介绍
在当今软件开发领域,容器化技术正在迅速流行。容器化是一种将应用程序及其所有的依赖项封装在一个独立的环境中,以便于在不同的计算环境中进行部署和运行的技术。容器化技术能够将应用程序与底层的操作系统解耦,使得应用程序能够以一种一致、可移植和可靠的方式在不同的环境中运行。Docker 是目前最流行的容器化平台之一,它提供了完整的容器化解决方案。Docker 使用了一种名为 Docker 镜像的轻量级模板来构建和分发容器。开发人员可以使用 Dockerfile 来定义镜像的构建过程,然后使用 Docker 镜像来创建和运行容器。Docker 提供了丰富的命令行工具和 API,使得容器的创建、管理和部署变得简单和高效。
1.2 适用对象
企业
个人开发者
学生
1.3 案例时间
本案例总时长预计 30 分钟。
1.4 案例流程

说明:① 用户申请并云主机;② 在云主机的 CodeArts IDE 上运行项目③ 用户申请容器镜像服务 SWR;④ 容器化改造 demo 项目并上传至 SWR。
最新案例动态,请查阅 《基于云主机的Java项目容器化改造》。小伙伴快来领取华为开发者空间进行实操吧!
2 申请容器镜像服务 SWR 资源并初始化
在浏览器中输入华为云网址:https://www.huaweicloud.com/进入华为云首页。点击首页右上方的“登录”,在弹出的对话框中输入自己的用户名和密码。

登录华为云首页后,在控制台输入“容器镜像服务 SWR”点击控制台登录容器镜像服务 SWR 控制台。

在弹出的授权说明对话框,仔细阅读说明内容,然后单击“确认”进行授权。

授权后进入到服务的控制台页面,区域选择北京四,然后单击页面右上角的“创建组织”。


在弹出的“创建组织”窗口中,自定义组织名,注意要有独特性避免冲突。

创建成功。

单击页面的“登录指令”,即可查看镜像登录指令。

3 容器化改造 demo 项目
3.1 前置条件
参考基于云主机的CodeArts IDE运行Java电商项目完成云主机的申请并在 CodeArts IDE 上运行自己的项目。改造后的项目代码可以通过https://gitcode.com/CaseDeveloper/E-Commerce-Java-Docker.git直接下载,具体改造步骤可参考下面详细步骤。
3.2 Docker 环境安装
进入华为开发者空间工作台界面,点击打开云主机 > 进入桌面连接云主机。如果还没有领取云主机进入工作台界面后点击配置云主机,选择 Ubuntu 操作系统。


云主机桌面右键选择“Open Terminal Here”,打开命令终端窗口。

逐步执行以下命令,进行虚拟机上的 docker 安装。更新软件包索引。
允许 APT 使用 HTTPS。
如果遇到下图直接按回车确认。(无此页面请忽略)

双击“取消”,按回车确认不重启。后面再遇到这两个页面都是相同处理。

添加 Docker 官方 GPG 密钥。

添加 Docker 的稳定版本仓库。
根据提示按回车继续添加。

再次更新软件包索引。
安装 Docker CE(社区版)。
验证 Docker 是否安装成功并运行。
显示下图状态表示 docker 安装成功。

ctrl+c 退出。
3.3 项目与运行环境整理
打开 CodeArts IDE,保证项目已编译构建成功。

可在终端控制台中输入下列命令,将进程包复制到桌面,方便后续镜像制作。

返回桌面,打开终端输入下列命令,来测试我们可以正常启动进程包。
显示如下表示项目包正常启动,ctrl+c 退出控制台。

3.4 Dockerfile 文件编写
在云主机桌面右键打开终端,输入下面的命令。编写服务启动程序。
按 i,进入编辑模式,然后将下面的代码复制到 start.sh。
复制进去之后,按 Esc,然后输入:wq,按回车进行保存。

然后继续编写 Dockerfile 文件。
按 i,进入编辑模式,将下面的代码复制到 Dockerfile 文件中。
复制进去之后,按 Esc,然后输入:wq 按回车进行保存。

3.5 制作镜像
3.5.1 配置云主机 docker 镜像源代理
在控制台中输入以下命令进行。
按 i,进入编辑模式,将下面的代码复制到 daemon.json 文件中。
复制进去之后,按 Esc,然后输入:wq,按回车进行保存。

然后在控制台输入以下命令,回车执行 daemon 文件和 docker 的重载。
3.5.2 制作镜像
在控制台中执行以下命令进行镜像制作。
查看镜像

4 在云主机上将镜像上传至 SWR
登录华为云的容器镜像服务 SWR 首页,点击右上角的“登录指令”。

复制登录指令。

将复制的指令替换下列命令中的“登录指令”,然后返回云主机,复制整个命令到控制台,回车,登录成功会显示“Login Succeeded”。

执行以下命令,给本地镜像打标签版本。
docker tag [本地镜像名称:本地版本名称(忽略表示最新版本)] [镜像仓库地址]/[组织名称]/[镜像名称:版本名称](镜像信息获取请参考附录:镜像仓库信息获取)
执行 docker push [镜像仓库地址]/[组织名称]/[镜像名称:版本名称]进行镜像推送。(镜像信息获取请参考附录:镜像仓库信息获取)

成功后,可在 SWR 中查看到镜像存在。

至此,基于云主机的 Java 项目容器化改造全部完毕。
5 附录
5.1 镜像仓库地址获取
登录华为云首页,在控制台输入“容器镜像服务 SWR”点击控制台登录容器镜像服务 SWR 控制台。

选择“北京四”,然后点击右上角的“登录命令”按钮。打开登录命令以后,点击复制按钮复制命令。

其中该命令中最后的地址:swr.cn-north-4.myhuaweicloud.com 即为“镜像仓库地址”,点击左侧的“组织管理”,该名称即为镜像“组织名称”。

“镜像名称和版本名称”为本地执行镜像标签设置时进行自定义设置的,例如 e_commerce_java:v1。
评论