Docker搭建Eureka-Server注册中心
Docker搭建Eureka-Server注册中心
·
一、 前提介绍
由于项目中使用到Eureka注册中心,为了便于本地自行测试,在个人服务器上搭建Eureka注册中心。本教程基于Docker构建Eureka-Server。
二、 创建Eureka-Server注册中心工程
- 代码已上传gitee,开箱即用:
https://gitee.com/Xiaoxinnolabi/my-eureka-server
2.1 创建基于Maven工程
IDEA相关创建基于Maven工程,这里就不赘述了。
2.2 引入相关依赖
主要是引入了:SpringBootStarter、SpringCloudStarterEurekaServer
pom配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.xiaoxinnolabi</groupId>
<artifactId>my-eureka-server</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.3 启动类
@SpringBootApplication
@EnableEurekaServer
public class MyEurekaServer {
public static void main(String[] args) {
SpringApplication.run(MyEurekaServer.class, args);
}
}
2.4 配置参数
这里配置注册中心端口为:8002,可根据自己需要修改端口。
server:
port: 8002
eureka:
instance:
hostname: 127.0.0.1
prefer-ip-address: true
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: my-eureka-server
2.5 本地测试
2.5.1 启动Eureka-Server
启动Eureka-Server,出现如下即为启动成功:
2022-03-03 15:02:41.733 INFO 22608 --- [ Thread-24] e.s.EurekaServerInitializerConfiguration : Started Eureka Server
2022-03-03 15:02:41.777 INFO 22608 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8002 (http)
2022-03-03 15:02:41.778 INFO 22608 --- [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8002
2022-03-03 15:02:41.783 INFO 22608 --- [ main] org.xiaoxinnolabi.server.MyEurekaServer : Started MyEurekaServer in 7.076 seconds (JVM running for 8.186)
浏览器访问:http://localhost:8002/
2.5.2 Client端
这里使用需要Eureka-Server的项目,修改其配置如下:
defaultZone: http://127.0.0.1:8002/eureka/
2.5.3 浏览器查看服务是否注册
三、 打包发布
3.1 通过Maven打包jar
3.2 Dockerfile
FROM java:8
VOLUME /tmp
ADD my-eureka-server-1.0-SNAPSHOT.jar my-eureka-server.jar
EXPOSE 8002
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/my-eureka-server.jar"]
3.3 创建Docker images
jar文件与Dockerfile上传服务器,并在目录下,执行以下代码:
(注意当前所在目录为jar与Dockerfile文件所在目录,以及末尾的. )
docker build -t mynew/myeurekaserver .
3.4 docker run
docker run -d --restart=always --name myeureka -e "JAVA_OPTS=-Xms256m -Xmx256m" -p 8002:8002 mynew/myeurekaserver
解释如下:
docker run
##后台运行容器
-d
##Docker重启 容器也重启
--restart=always
##容器名
--name myeureka
##相关参数
-e "JAVA_OPTS=-Xms256m -Xmx256m"
##映射端口
-p 8002:8002
##镜像
mynew/myeurekaserver
3.5 查看运行情况
docker ps -a
docker logs myeureka
3.6 项目测试
修改项目eureka相关配置
defaultZone: http://服务器IP:8002/eureka/
运行项目,在http://服务器IP:8002/ 查看是否有服务注册。
更多推荐
已为社区贡献1条内容
所有评论(0)