Docker 搭建属于自己的 Eureka 注册中心
一. 环境介绍
- Ubuntu 18.04 LTS (Win10 wsl2)
- Docker 19.03.8
二. 必要的 Docker 命令学习
docker images # 查看已有镜像 docker ps -a # 查看所有容器 docker ps # 查看运行中的容器 docker stop name # 停止名为 name 的容器 docker start name # 运行名为 name 的容器 docker rm name # 删除名为 name 的容器 docker rmi name # 删除名为 name 的镜像
三. Eureka 服务打包
1. 使用IDEA新建一个EurekaServer服务 File -> New -> Project... 选择Maven项目
2. 下一步 输入喜欢的EurekaServer信息
3. 完成后编辑 pom.xml 输入必要的信息
1 <parent> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-parent</artifactId> 4 <version>1.5.4.RELEASE</version> 5 <relativePath/> 6 </parent> 7 8 <dependencies> 9 <dependency> 10 <groupId>org.springframework.cloud</groupId> 11 <artifactId>spring-cloud-starter-eureka-server</artifactId> 12 </dependency> 13 </dependencies> 14 15 <dependencyManagement> 16 <dependencies> 17 <dependency> 18 <groupId>org.springframework.cloud</groupId> 19 <artifactId>spring-cloud-dependencies</artifactId> 20 <version>Dalston.SR1</version> 21 <type>pom</type> 22 <scope>import</scope> 23 </dependency> 24 </dependencies> 25 </dependencyManagement> 26 27 <!-- 如果要打包成jar并通过 java -jar 运行 则需要以下信息 --> 28 <build> 29 <plugins> 30 <plugin> 31 <groupId>org.springframework.boot</groupId> 32 <artifactId>spring-boot-maven-plugin</artifactId> 33 </plugin> 34 </plugins> 35 </build>
4. 刷新 MAVEN 后补充相应目录文件, 结构和文件内容如下
1 @EnableEurekaServer 2 @SpringBootApplication 3 public class EurekaServer { 4 public static void main(String[] args) { 5 6 SpringApplication.run(EurekaServer.class, args); 7 } 8 }
1 spring: 2 application: 3 name: eureka-server # 服务名 4 5 server: 6 port: 10011 # 端口号 7 8 eureka: 9 instance: 10 hostname: localhost 11 client: 12 register-with-eureka: false 13 fetch-registry: false
1 # java环境 2 FROM openjdk:8-jdk 3 # 作者 4 MAINTAINER heei 5 # jar包相对位置 替换jar包名称 6 ADD target/eureka-server-1.0-SNAPSHOT.jar eureka-server.jar 7 # 执行的运行命令 用逗号隔开 8 ENTRYPOINT ["java","-jar","eureka-server.jar"]
5. 使用 IDEA 自带的 MAVEN 工具勾选必要项目进行打包
6. 打包成功后将项目整体复制到部署有 Docker 的 Linux 服务器上你喜欢的目录中, 并进入项目根目录, 文件结构如下
7. 运行 Docker 打包镜像命令(注意最后有个点), 其中 my/eureka-server 可以自定义为你喜欢的名称
docker build -t my/eureka-server .
8. 运行 Docker 启动新容器命令启动 Eureka 服务, 其中 -d 表示后台运行; --name 表示容器命名; -p 表示映射容器内的端口号到外面(外:内)
docker run -d --name eureka-server -p 10011:10011 my/eureka-server
四. 验证
浏览器访问 localhost:10011 (Docker 所在服务器 IP:Eureka 服务配置文件中的端口号) 即可验证
验证通过后其他服务即可通过配置此 Eureka 服务的信息进行注册访问