eureka在springcloud项目中作为注册中心使用,提供服务注册和服务发现功能。本片介绍如何使用构建镜像的方式部署eureka。
1、准备eureka部署包
eureka-server部署包大家参考springcloud官方示例去创建eureka工程,然后打成jar包即可,不在此多述,本篇重点是部署。
我的部署包名为:springcloud-eureka-server-0.1.jar
2、编写Dockerfile文件
创建文件名为Dockerfile的文件,文件内容如下:
FROM java:8
VOLUME /tmp
ADD springcloud-eureka-server-0.1.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8761
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
文件内容解释:
java:8 是指使用jdk.18的java镜像,在容器中安装java
VOLUME 指向了一个/tmp的目录,springboot内置tomcat默认使用/tmp作为工作目录。作用是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/tmp。
ADD 将项目的jar文件作为app.jar添加到容器
RUN 表示在新创建的镜像中执行一些命令,然后把执行的结果提交到当前镜像
EXPOSE 容器暴露端口
ENTRYPOINT 应用启动命令 参数设定
3、上传部署包到服务器
将springcloud-eureka-server-0.1.jar和Dockerfile两个文件上传到服务器同一目录下。
[root@iZbp13sno1lc2yxlhjc4b3Z eureka]# ls
Dockerfile springcloud-eureka-server-0.1.jar
[root@iZbp13sno1lc2yxlhjc4b3Z eureka]#
4、构建镜像文件
[root@iZbp13sno1lc2yxlhjc4b3Z eureka]# docker build -t eureka_v0.1 .
注意命令后面有个空格和点。这个过程稍微有点长,要下载java等资源。
镜像创建好后,查看镜像文件:
[root@iZbp13sno1lc2yxlhjc4b3Z eureka]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
eureka_v0.1 latest 0de0a6524b30 About an hour ago 683MB
nginx latest a1523e859360 12 days ago 127MB
fauria/vsftpd latest 2351afb0fb43 13 days ago 315MB
portainer/portainer latest 10383f5b5720 3 weeks ago 78.6MB
mysql 5.7.24 ba7a93aae2a8 14 months ago 372MB
tomcat 8.5.34 ca9e2fccef98 16 months ago 463MB
java 8 d23bdf5b1b1b 3 years ago 643MB
发现镜像eureka_v0.1已经创建好,并且java镜像也存在。
5、创建eureka容器并运行
[root@iZbp13sno1lc2yxlhjc4b3Z eureka]# docker run --name eureka -d -p 8761:8761 eureka_v0.1
查看容器运行情况:
[root@iZbp13sno1lc2yxlhjc4b3Z eureka]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
aaaa27341bc3 eureka_v0.1 "java -Djava.securit…" About an hour ago Up About an hour 0.0.0.0:8761->8761/tcp eureka
打开浏览器,输入地址:http://192.168.2.130:8761/eureka,可看到eureka监控页面
![](https://img.haomeiwen.com/i21615973/01915dfe17beba55.png)
eureka也可以打成war包以web的应用方式部署在tomcat容器中,关于tomcat容器部署web应用可以参考我之前发布的一篇文章。
网友评论