当前位置: 首页 > news >正文

828华为云征文|Flexus云服务器X实例:在Docker环境下搭建java开发环境

828华为云征文|Flexus云服务器X实例:在Docker环境下搭建java开发环境

  • 引言
  • 一、Flexus云服务器X实例介绍
    • 1.1 Flexus云服务器X实例简介
    • 1.2 主要使用场景
  • 二、购买Flexus云服务器X实例
    • 2.1 购买规格参考
    • 2.2 查看Flexus云服务器X实例状态
  • 三、远程连接Flexus云服务器X实例
    • 3.1 重置密码
    • 3.2 本地MobaXterm工具远程连接
  • 四、创建Ubuntu容器
    • 4.1Java介绍
    • 4.2 实践环境规划
    • 4.3 本地环境检查
    • 4.4 下载Ubuntu镜像
    • 4.5 运行Ubuntu容器
    • 4.6安装java环境
    • 4.7 编辑myapp.java文件
    • 4.8 运行测试java文件
  • 五、构建java应用容器镜像
    • 5.1 编写Dockerfile文件
    • 5.2 编写测试java应用
    • 5.3 构建Docker镜像
    • 5.4 查看容器镜像
    • 5.5 运行Docker容器
  • 六、访问测试应用
    • 6.1 安全设置
    • 6.2 本地访问
  • 七、总结与体会

引言

在科技飞速发展的时代,云计算成为推动各行业进步的重要力量。华为云凭借其强大的技术实力和创新精神,始终走在行业前沿。华为云 Flexus 云服务器 X 实例,作为新一代云服务器,专为中小企业和开发者精心打造。它以卓越的柔性算力,为我们在 Docker 环境下搭建 java 开发环境提供有力支撑。

一、Flexus云服务器X实例介绍

1.1 Flexus云服务器X实例简介

华为云Flexus云服务器X实例官网:Flexus云服务器X实例

华为云Flexus云服务器X实例属于新一代云服务器,专为中小企业和开发者打造,具备柔性算力。它能够智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负载场景。与 Flexus 应用服务器 L 实例相比,Flexus 云服务器 X 实例具有诸多优势,例如提供丰富的公共镜像、可灵活自定义 vCPU 内存配比、能智能感知业务动态升降配,而且负载范围更高等。

在这里插入图片描述

1.2 主要使用场景

  • 电商直播
    在电商直播领域,Flexus 云服务器 X 实例展现出卓越的适应性。随着电商市场的动态变化,业务压力时刻处于波动之中。利用 Flexus X 实例搭建电商交易平台,能够游刃有余地应对这种变化。无论是促销活动期间流量的爆发式增长,还是日常运营中的业务压力起伏,该实例凭借其独特的性能优势,确保电商平台的稳定运行,为商家和消费者提供可靠的交易环境。
  • 企业建站
    对于企业建站需求,无论是创建博客、搭建论坛,还是构建企业门户等业务场景,Flexus 云服务器 X 实例都能发挥重要作用。它有助于企业有效地传播自身的价值信息,推动信息在企业内部、企业与客户之间的共享和交流。企业可以借助这一实例轻松搭建多功能的传播和交互平台,全方位展示企业形象、产品信息以及服务内容,从而增强企业的品牌影响力和用户粘性。
  • 个人开发测试
    在个人开发和测试方面,开发者常常需要各种各样的环境资源。Flexus 云服务器 X 实例为开发者提供了便捷且经济高效的解决方案。选择从云上获取所需资源,基于该实例搭建开发测试环境,能够让开发者更加专注于代码编写和功能测试。与传统方式相比,这种方式不仅操作更加便利,而且在成本控制上更具优势,有助于提高开发效率,缩短项目周期。
  • 游戏服务器
    Flexus 云服务器 X 实例非常适用于搭建游戏后台服务器。在游戏运营过程中,它强大的算力足以轻松应对数千人同时在线的复杂情况。当服务器玩家数量出现上涨趋势时,该实例的平滑扩容能力能够迅速响应,确保游戏的流畅性和稳定性。此外,其超强的网络加速能力显著提升了玩家的游戏体验,减少延迟、卡顿等现象,为游戏的成功运营提供了坚实的技术保障。

二、购买Flexus云服务器X实例

2.1 购买规格参考

  • 华为云Flexus X实例的购买规格可以参考如下所示:
配置项详细信息
基础配置计费模式:包年/包月
区域:华为-北京四
可用区:随机分配
实例规格性能模式:关闭(按需可开启)
实例规格:自定义 4vCPUs 12GiB
镜像选择操作系统:Rocky Linux 9.0 64bit (10GiB)
存储设置系统盘:通用型 SSD,容量 100GB
网络配置使用默认配置,可自定义VPC及安全组
弹性公网IP购买方式:现在购买
线路:全动态BGP
公网带宽:按带宽计费
带宽大小:3Mbit/s
云服务器名称名称:flexusx-e2c8(自动生成)
登录凭证:自定义账号密码
云备份当前选择暂不购买,可自行选择
  • 可参考以下配置详情页,确认无误后,勾选“协议许可”,点击立即购买。

在这里插入图片描述

2.2 查看Flexus云服务器X实例状态

购买成功后,进入到Flexus云服务器X实例控制台,可以看到Flexus X实例已经正常运行中。

在这里插入图片描述

三、远程连接Flexus云服务器X实例

3.1 重置密码

选择“重置密码”选项,重置Flexus云服务器X实例的登录密码。

在这里插入图片描述

登录密码自定义设置,勾选自动重启选项,确认。

在这里插入图片描述

3.2 本地MobaXterm工具远程连接

可以使用本地MobaXterm工具连接Flexus云服务器X实例,填写Flexus云服务器X实例的弹性公网IP地址后,在终端界面填写root账号和密码即可远程连接。

在这里插入图片描述
在这里插入图片描述

四、创建Ubuntu容器

4.1Java介绍

Java是一种高级、通用、面向对象的编程语言。它由Sun Microsystems公司于1995年推出,并且现在由Oracle维护和支持。Java的设计目标是让开发者能够编写一次代码,然后在多个平台上运行,这也被称为“一次编写,到处运行”的原则。这个特点使得Java非常受欢迎,并成为了企业级应用开发的首选语言之一。Java语言具有简单、稳定、可移植、面向对象、安全等特点。它的语法和C语言类似,但相对更简洁和易于理解。Java程序在运行时被编译成字节码,然后在Java虚拟机(JVM)上运行。这使得Java程序可以在任何具有适当JVM的操作系统上运行,大大提高了其可移植性和跨平台性。

4.2 实践环境规划

云服务器选择内网IP地址hostname公共镜像操作系统版本Docker版本
华为云 Flexus云服务器X实例192.168.0.130flexusx-e2c8Rocky LinuxRocky Linux 927.1.1

4.3 本地环境检查

检查当前的操作系统版本

[root@flexusx-e2c8 ~]# cat /etc/os-release
NAME="Rocky Linux"
VERSION="9.0 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.0"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.0 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.0"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.0"

检查Docker版本,需要提前安装Docker环境。

[root@flexusx-e2c8 ~]# docker -v
Docker version 27.1.1, build 6312585

4.4 下载Ubuntu镜像

拉取Ubuntu镜像ubuntu:latest

[root@flexusx-e2c8 java]# docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
Digest: sha256:dfc10878be8d8fc9c61cbff33166cb1d1fe44391539243703c72766894fa834a
Status: Image is up to date for ubuntu:latest
docker.io/library/ubuntu:latest

4.5 运行Ubuntu容器

可参考以下命令,运行ubuntu测试容器。

docker run -it --name ubuntu_test ubuntu:latest /bin/bash

在这里插入图片描述

4.6安装java环境

更新软件包列表,该列表包含可用的软件包和其版本信息,该命令会从软件源中获取最新的软件包信息并将其存储在本地。

在这里插入图片描述

安装OpenJDK 11版本的JDK

apt-get install openjdk-11-jdk -y

在这里插入图片描述

查看安装版本


root@6369625cdb15:/# java -version
openjdk version "11.0.24" 2024-07-16
OpenJDK Runtime Environment (build 11.0.24+8-post-Ubuntu-1ubuntu324.04.1)
OpenJDK 64-Bit Server VM (build 11.0.24+8-post-Ubuntu-1ubuntu324.04.1, mixed mode, sharing)

4.7 编辑myapp.java文件

编辑myapp.java文件,内容如下:

辑test.java文件

public class myapp {public static void  main (String[] args) {System.out.println("Learn Docker technology together");}
}

4.8 运行测试java文件

运行测试文件以检查是否正确输出。如果能够正常打印预期内容,则说明 Java 环境安装成功。


root@6369625cdb15:/# javac  myapp.java
root@6369625cdb15:/# java myapp
Learn Docker technology together
root@6369625cdb15:/#

在这里插入图片描述

五、构建java应用容器镜像

5.1 编写Dockerfile文件

创建部署目录

mkdir -p /data/java && cd /data/java

我们创建一个Dockerfile 来定义容器环境,在当前目录下创建一个名为 Dockerfile 的文件,并添加如下内容:

vim Dockerfile
# 使用官方的 Ubuntu 镜像作为基础镜像
FROM ubuntu:latest# 设置环境变量以避免交互式配置提示
ENV DEBIAN_FRONTEND=noninteractive# 更新软件包列表并安装 OpenJDK 和其他必要的工具
RUN apt-get update && \apt-get install -y openjdk-11-jdk maven && \apt-get clean && \rm -rf /var/lib/apt/lists/*# 设置 JAVA_HOME 环境变量
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64# 将工作目录设置为 /app
WORKDIR /app# 将本地的 Java 代码复制到容器中
COPY . /app# 编译 Java 应用程序
RUN javac test.java
# 暴露端口
EXPOSE 5000# 指定运行时执行的命令
CMD ["java", "test"]

5.2 编写测试java应用

在同一目录下创建一个简单的Java测试应用程序test.java,如下所示:

vim test.java
import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpExchange;import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;public class test {public static void main(String[] args) throws Exception {HttpServer server = HttpServer.create(new InetSocketAddress(5000), 0);server.createContext("/", new MyHandler());server.setExecutor(null); // creates a default executorserver.start();System.out.println("Server started on port 5000");}static class MyHandler implements HttpHandler {@Overridepublic void handle(HttpExchange t) throws IOException {String response = "Hello, Docker and Java!";t.getResponseHeaders().add("Content-Type", "text/plain");t.sendResponseHeaders(200, response.length());OutputStream os = t.getResponseBody();os.write(response.getBytes());os.close();}}
}

5.3 构建Docker镜像

运行以下命令来构建 Docker 镜像

docker build -t my-java-app .

在这里插入图片描述

5.4 查看容器镜像

查看本地构建成功的容器镜像,如下所示:

docker images

在这里插入图片描述

5.5 运行Docker容器

可参考以下命令,运行Docker容器。

docker run -d -p 5300:5000 --restart always  --name my-java-container my-java-app

在这里插入图片描述

查看测试容器状态,可以看到测试容器 my-java-container运行正常。


[root@flexusx-e2c8 java]# docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS                PORTS                                                                                            NAMES
03bb709f142b   my-java-app                     "java test"              19 seconds ago   Up 18 seconds         0.0.0.0:5300->5000/tcp, :::5300->5000/tcp                                                        my-java-container

六、访问测试应用

6.1 安全设置

在安全组规则管理界面,入方向规则上放行5300端口。

在这里插入图片描述

本次安装的Rocky Linux操作系统默认没有关闭防火墙,可以参考以下命令,关闭防火墙。如果不想关闭防火墙,则需要放行相关服务端口。

 systemctl stop firewalld && systemctl disable firewalld

关闭selinux服务

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

6.2 本地访问

在本地浏览器中输入以下地址:https://公网IP地址:5300(将"公网IP地址"替换为你的服务器的弹性公网IP地址),我们可以访问到java测试服务。

在这里插入图片描述

七、总结与体会

通过在华为云 Flexus 云服务器 X 实例上进行 Docker 环境下 java 开发环境的搭建,我们深刻感受到了华为云的强大实力。其柔性算力为开发过程提供了高效稳定的支持。华为云的便捷管理和优质服务也让开发工作更加顺畅。华为云无疑是中小企业和开发者的可靠之选。

华为云 Flexus 云服务器 X 实例优势非凡,拥有无限的扩展空间、卓越的强劲性能、高度的稳定可靠、灵活的资源调度以及严密的多重安全防护等特性,能够满足各类变动需求,有力保障数据安全。目前,华为云 828 活动已然开启,其便捷的一键式管理功能大大简化了运维工作。让我们携手共同探索充满无限可能的数字化未来!

在这里插入图片描述


http://www.mrgr.cn/news/35249.html

相关文章:

  • 拦截器filter
  • 如何使用ssm实现基于VUE.js的在线教育系统+vue
  • for循环的应用
  • 0基础学前端 day2
  • git基础 -- 查找文件内容
  • MyBatis的一二级缓存
  • 云管理平台实践指南
  • ②大缓存ModbusRTU485数据集中采集器寄存器线圈重映射从站并发采集Modbus 串口RS485 转 RS485
  • 2024年蓝牙网关市场热门产品选购宝典
  • 洛谷P4551 最长异或路径(字典树,异或)
  • Node.JS有什么用?给谁用?怎么学?通俗易懂,超级详细!
  • vue脚手架Vue CLI 2.9.6创建工程,并引入elementUI的方法
  • C++STL--------string
  • Linux usb主机控制器HC阅读
  • scrapy spider框架download下来就可以用
  • DBeaver中如何导入excel中的大量数据
  • JS 特殊运算符有哪些?
  • 语言的变量交换
  • yolov10算法原理
  • rust一些通用编程的概念