【docker-componse】使用docker-componse部署springcloud微服务项目案例

代码示例:dockerwithcloud

如何搭建springcloud微服务项目我就不多说了。

核心配置:

1.编写注册到eureka的模块application.yml配置文件 :

server:
  port: 8889

# 注册到注册中心的名字
spring:
  application:
    name: client-a

# 注册中心配置
eureka:
  client:
    service-url:
      defaultZone: http://eureka-server:8888/eureka/

注册中心地址 从 http://localhost:8888/eureka 变为 http://eureka-server:8888/eureka 使用eureka-server名称进行连接

这是因为项目运行的是一个一个的容器。每个容器ip不一样。

2.在每个服务模块里编写Dockerfile文件:

FROM java
MAINTAINER Jiuchen <[email protected]>

ADD ./target/项目生成的jar包名字.jar /app/
CMD ["java", "-Xmx200m", "-jar", "/app/项目生成的jar包名字.jar"]

EXPOSE 8889

简单讲解 :

      FROM:这个镜像在什么镜像的基础上生成 (例如这个项目在java的环境上)

      MAINTAINER :镜像作者

      ADD:将文件放到什么地方 

      CMD:执行命令

      EXPOSE :端口号

在项目主文件夹编写docker-componse.yml文件

version: "2"

services:

  docker-client:
    build: ./client
    image: docker-client
    ports:
      - 8889:8889
    links:
      - docker-eureka:eureka-server

  docker-service:
    build: ./service
    image: docker-service
    ports:
      - 8887:8887
    links:
      - docker-eureka:eureka-server

  docker-eureka:
    build: ./eureka-server
    image: docker-eureka
    ports:
      - 8888:8888

services可以理解为代表很多容器

下面讲解一下这段是什么意思

docker-client:
    build: ./client
    image: docker-client
    ports:
      - 8889:8889
    links:
      - docker-eureka:eureka-server

docker-client:  ===> 这个是个名字用来区分的 可以随便定义名称

build ===> 执行哪个模块的Dockefile 这里我写的是 ./client 模块 会自动执行我 ./client/Dockefile 进行生成镜像

image ===> 生成的镜像名字

ports ===> 端口映射

links ===> docker-componse部署微服务关键的一点 这里是引入docker-eureka服务并定义名字为 eureka-server ===> 前面配置文件里连接eureka地址的名字 :http://eureka-server:8888/eureka

下面是项目结构

【docker-componse】使用docker-componse部署springcloud微服务项目案例_第1张图片

这样配置后在项目根目录 使用mvn clean package -Dmaven.test.skip=true命令打包项目

后使用docker-componse -f docker-componse.yml up -d命令构建项目以及启动项目

使用docker images 查看镜像

使用docker ps -a 查看容器

你可能感兴趣的:(Java,docker,docker,docker-componse,springcloud,eureka)