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配置如下:


<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.0modelVersion>

    <groupId>org.xiaoxinnolabigroupId>
    <artifactId>my-eureka-serverartifactId>
    <version>1.0-SNAPSHOTversion>

    <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
    properties>

    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>1.5.4.RELEASEversion>
        <relativePath/>
    parent>

     <dependencyManagement>
         <dependencies>
             <dependency>
                 <groupId>org.springframework.cloudgroupId>
                 <artifactId>spring-cloud-dependenciesartifactId>
                 <version>Dalston.SR1version>
                 <type>pomtype>
                 <scope>importscope>
             dependency>
         dependencies>
     dependencyManagement>

    <dependencies>

        
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-eureka-serverartifactId>
            <version>1.4.7.RELEASEversion>
        dependency>


    dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            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/ 查看是否有服务注册。

你可能感兴趣的:(服务器,docker,eureka,注册中心)