广告位

阿里云服务器波动华为开发者空间:Java项目Docker容器化,云主机实操教程

频道: 日期: 浏览:2

搬瓦工云服务器

1 概述

1.1 背景介绍

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

1.2 适用对象

企业个人开发者学生

1.3 案例时间

本案例总时长预计30分钟。

1.4 案例流程

说明:① 用户申请并云主机;② 在云主机的CodeArts IDE上运行项目③ 用户申请容器镜像服务SWR;④ 容器化改造demo项目并上传至SWR。

1.5 资源总览

本次实验预计花费总计0元。

资源名称

规格

单价(元)

时长(分钟)

开发者空间-华为云——云主机

鲲鹏通用计算增强型 kC2 | 4vCPUs | 8G | Ubuntu

0

30

容器镜像服务SWR

正式版

0

30

云犀服务器

最新案例动态,请查阅《基于云主机的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安装。更新软件包索引。

sudo apt-getupdate

允许APT使用HTTPS。

sudo apt-getinstall -y apt-transport-https ca-certificates curl software-properties-common

如果遇到下图直接按回车确认。(无此页面请忽略)

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

添加Docker官方GPG密钥。

腾讯公共云服务器

wget-qO - https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg

添加Docker的稳定版本仓库。

sudo add-apt-repository"deb [arch=amd64] https://download.docker.com/linux/ubuntu$(lsb_release -cs)stable"

根据提示按回车继续添加。

再次更新软件包索引。

sudo apt-getupdate

安装Docker CE(社区版)。

sudo apt-getinstall -y docker-ce

验证Docker是否安装成功并运行。

sudo systemctlstatusdocker

显示下图状态表示docker安装成功。

ctrl+c退出。

3.3 项目与运行环境整理

打开CodeArts IDE,保证项目已编译构建成功。

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

cp/home/developer/Desktop/workspace/E-Commerce-Java/target/E-Commerce-Java-1.0-SNAPSHOT.jar /home/developer/Desktop/

返回桌面,打开终端输入下列命令,来测试我们可以正常启动进程包。

java-jar /home/developer/Desktop/E-Commerce-Java-1.0-SNAPSHOT.jar

显示如下表示项目包正常启动,ctrl+c退出控制台。

3.4 Dockerfile文件编写

在云主机桌面右键打开终端,输入下面的命令。编写服务启动程序。

vimstart.sh

按i,进入编辑模式,然后将下面的代码复制到start.sh。

!/bin/shecho"启动项目开始"java -jar /E-Commerce-Java-1.0-SNAPSHOT.jarecho"启动项目结束"

复制进去之后,按Esc,然后输入:wq,按回车进行保存。

然后继续编写Dockerfile文件。

vimDockerfile

按 i,进入编辑模式,将下面的代码复制到Dockerfile文件中。

FROMubuntu:22.04安装JDK 17RUNapt-get update && apt-get install -y openjdk-17-jdk && apt-get clean && rm -rf /var/lib/apt/lists/*添加项目包ADDE-Commerce-Java-1.0-SNAPSHOT.jar /E-Commerce-Java-1.0-SNAPSHOT.jar添加项目启动脚本ADDstart.sh /镜像启动时执行项目启动脚本CMDsh /start.sh

复制进去之后,按Esc,然后输入:wq按回车进行保存。

3.5 制作镜像

3.5.1 配置云主机docker镜像源代理

在控制台中输入以下命令进行。

sudovim /etc/docker/daemon.json

按 i,进入编辑模式,将下面的代码复制到daemon.json文件中。

{"registry-mirrors":["https://hub-mirror.c.163.com","https://registry.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com"] }

复制进去之后,按Esc,然后输入:wq,按回车进行保存。

然后在控制台输入以下命令,回车执行daemon文件和docker的重载。

sudosystemctl daemon-reloadsudosystemctl restart docker

3.5.2 制作镜像

在控制台中执行以下命令进行镜像制作。

sudodocker build -t e_commerce_java .

查看镜像

sudodocker images

4 在云主机上将镜像上传至SWR

登录华为云的容器镜像服务SWR首页,点击右上角的登录指令。

复制登录指令。

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

sudo登录指令

执行以下命令,给本地镜像打标签版本。

docker tag [本地镜像名称:本地版本名称(忽略表示最新版本)] [镜像仓库地址]/[组织名称]/[镜像名称:版本名称](镜像信息获取请参考附录:镜像仓库信息获取)

sudodockertage_commerce_javaswr.cn-north-4.myhuaweicloud.com/e_commerce_java/e_commerce_java:v1

执行docker push [镜像仓库地址]/[组织名称]/[镜像名称:版本名称]进行镜像推送。(镜像信息获取请参考附录:镜像仓库信息获取)

sudodockerpushswr.cn-north-4.myhuaweicloud.com/e_commerce_java/e_commerce_java:v1

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

至此,基于云主机的Java项目容器化改造全部完毕。

5 附录

5.1 镜像仓库地址获取

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

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

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

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

云服务器中毒吗

关键词: