一、迁移注册中心服务

1.4.1 环境信息

代码地址:https://gitee.com/dukuan/demo-eureka.git

构建命令:mvn clean package

Java 版本:jdk 1.8

构建镜像:registry.cn-hangzhou.aliyuncs.com/abroad_images/maven:3.5.3

1.4.2 构建及容器化

1、在node01主机(10.0.0.21)下载源码

# 宿主机上创建项目目录
[root@node01 ~]# mkdir springcloud

# 下载源码
[root@node01 ~]# cd springcloud
[root@k8s-node01 springcloud]# git clone https://gitee.com/dukuan/demo-eureka.git

# 宿主机上创建缓存目录
[root@k8s-node01 springcloud]# mkdir -p /data/m2

2、在node01主机(10.0.0.21)启动临时容器,进行构建

# 启动临时容器
[root@node01 ~]# cd /root/springcloud
[root@k8s-node01 springcloud]# 
docker run -it --rm \
  -v /data/m2:/root/.m2 \
  -v "$(pwd)/demo-eureka:/mnt" \
  registry.cn-hangzhou.aliyuncs.com/abroad_images/maven:3.5.3 \
  bash -c "cd /mnt && mvn clean package"

# 出现BUILD SUCCESS字样,代表成功
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.964 s
[INFO] Finished at: 2025-03-22T11:40:31Z
[INFO] ------------------------------------------------------------------------

# 检查宿主机目录
[root@k8s-node01 ~]# ls -l /root/springcloud/demo-eureka/target/
总用量 46080
drwxr-xr-x 3 root root       86  3月 22 19:40 classes
drwxr-xr-x 3 root root       25  3月 22 19:40 generated-sources
drwxr-xr-x 2 root root       28  3月 22 19:40 maven-archiver
drwxr-xr-x 3 root root       35  3月 22 19:40 maven-status
-rw-r--r-- 1 root root 47179265  3月 22 19:40 spring-cloud-eureka-0.0.1-SNAPSHOT.jar
-rw-r--r-- 1 root root     3964  3月 22 19:40 spring-cloud-eureka-0.0.1-SNAPSHOT.jar.original

3、在node01主机(10.0.0.21)编写Dockfile文件

# 宿主机上同样查看,观察到已生成target目录
[root@k8s-node01 ~]# cd /root/springcloud/demo-eureka/
[root@k8s-node01 demo-eureka]# ll
总用量 16
-rw-r--r-- 1 root root  341  3月 22 13:05 Dockerfile
-rw-r--r-- 1 root root 2399  3月 22 12:41 pom.xml
-rw-r--r-- 1 root root  856  3月 22 12:41 README.en.md
-rw-r--r-- 1 root root  945  3月 22 12:41 README.md
drwxr-xr-x 3 root root   18  3月 22 12:41 src
drwxr-xr-x 6 root root  189  3月 22 13:48 target

# 宿主机上查看target目录
[root@k8s-node01 demo-eureka]# ll target/spring-cloud-eureka-0.0.1-SNAPSHOT.jar
-rw-r--r-- 1 root root 47179265  3月 22 13:48 target/spring-cloud-eureka-0.0.1-SNAPSHOT.jar

# 编写Dockfile文件
[root@k8s-node01 ~]# cd /root/springcloud/demo-eureka/
[root@k8s-node01 demo-eureka]# vim Dockerfile
# 基础镜像可以按需修改,可以更改为公司自有镜像
FROM registry.cn-hangzhou.aliyuncs.com/abroad_images/jdk:8u211-jmap
# 定义容器家目录
WORKDIR /home/tomcat
# 复制jar包
COPY target/*.jar ./
# 启动Jar包
CMD ["sh", "-c", "java -jar *.jar"]

4、在node01主机(10.0.0.21)构建镜像

[root@k8s-node01 demo-eureka]# docker build -t registry.cn-hangzhou.aliyuncs.com/abroad_images/demo-eureka:v0.0.1 .

# 测试镜像,观察到正常
[root@k8s-node01 demo-eureka]# docker run -d -p 18761:8761  registry.cn-hangzhou.aliyuncs.com/abroad_images/demo-eureka:v0.0.1
[root@k8s-node01 demo-eureka]# docker ps 
CONTAINER ID   IMAGE                                                                COMMAND                   CREATED              STATUS              PORTS                                           NAMES
a5e045e7005c   registry.cn-hangzhou.aliyuncs.com/abroad_images/demo-eureka:v0.0.1   "sh -c 'java -jar *.…"   About a minute ago   Up About a minute   0.0.0.0:18761->8761/tcp, [::]:18761->8761/tcp   recursing_shirley

# 上传镜像到阿里云仓库
[root@k8s-node01 demo-eureka]# docker push registry.cn-hangzhou.aliyuncs.com/abroad_images/demo-eureka:v0.0.1