docker如何部署eureka-server
作者:古甲哈醒
这篇文章主要介绍了docker如何部署eureka-server问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
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监控页面
eureka也可以打成war包以web的应用方式部署在tomcat容器中,关于tomcat容器部署web应用可以参考这篇。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。