根据安全可靠测评结果公告,当前欧拉系统已经通过安合可靠的测评,后续在各服务器应用领域都可能会用到欧拉操作系统,比起centos,fedora更适合服务器的搭建。
本文主要介绍,如果基于最新的LTS版本制作JAVA容器化应用镜像。
1、安装docker环境
(1)正常方式:
使用centos的相关docker-ce包
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo=https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl start docker
sudo systemctl enable docker
其中要注意版本的对应关系
当前euler 24.03可以应用的centos的版本是9,
将/etc/yum.repos.d/docker-ce.repo中的仓库地址及操作系统版本进行替换,加速下载。
sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
sed -i 's+$releasever+9+' /etc/yum.repos.d/docker-ce.repo
(2)在euler系统:其中的 docker-engine中集成了docker-ce相关的包
sudo dnf install docker
2、编辑JAVA应用的Dockerfile
(1)引用基础镜像openeuler:24.03,hub.oepkgs.net在国内下载速度快一些
(2)加入jdk,使用openjdk,建议从清华大学的镜像仓库中下载,也是速度快
wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/19/jdk/x64/linux/OpenJDK19U-jdk_x64_linux_hotspot_19.0.2_7.tar.gz
ADD jdk-19.0.2+7 /app/jdk-19.0.2+7
ENV JAVA_HOME=/app/jdk-19.0.2+7
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
(3)加入JAVA spring应用
ADD test-0.0.1-SNAPSHOT.jar /app/
这里使用spring 简单搭建了一个应用
@RestController
public class Controller {
@GetMapping("/")
public Mono<String> hello() {
return Mono.just("Welcome to reactive world~");
}
}
(4)定义JAVA应用的启动方式及暴露端口
ENTRYPOINT ["java","-jar","/app/test-0.0.1-SNAPSHOT.jar"]
EXPOSE 8080
整体Dockerfile内容
FROM hub.oepkgs.net/openeuler/openeuler:24.03
WORKDIR /app
ADD jdk-19.0.2+7 /app/jdk-19.0.2+7
ADD test-0.0.1-SNAPSHOT.jar /app/
ENV JAVA_HOME=/app/jdk-19.0.2+7
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH=$JAVA_HOME/bin:$PATH
ENTRYPOINT ["java","-jar","/app/test-0.0.1-SNAPSHOT.jar"]
EXPOSE 8080
[点击并拖拽以移动]
3、制作JAVA应用容器镜像
docker build -t testapp:1.0.1 .
测试镜像
docker run -p 8080:8080 -d testapp:1.0.1
验证测试curl
curl localhost:8080
Welcome to reactive world~
3、导出应用容器镜像
docker image save testapp:1.0.10 -o testapp1.0.10.tar