1.在每个模块pom.xml文件中添加下面代码块 ? ?
<build>
? ? ? ? <plugins>
? ? ? ? ? ? <plugin>
? ? ? ? ? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? ? ? ? ? <artifactId>spring-boot-maven-plugin</artifactId>
? ? ? ? ? ? ? ? <executions>
? ? ? ? ? ? ? ? ? ? <execution>
? ? ? ? ? ? ? ? ? ? ? ? <goals>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <goal>repackage</goal>
? ? ? ? ? ? ? ? ? ? ? ? </goals>
? ? ? ? ? ? ? ? ? ? </execution>
? ? ? ? ? ? ? ? </executions>
? ? ? ? ? ? </plugin>
? ? ? ? </plugins>
? ? </build>
2.(只针对eureka)在每个分布式模块中yml或者其他配置文件中添加instance.prefer-ip-address=true
eureka:
? client:
? ? service-url:
? ? ? defaultZone: http://47.106.136.228:7080/eureka
? ? registry-fetch-interval-seconds: 5
? instance:
? ? prefer-ip-address: true
3.先将分布式文件打成jar
4.将打包好的jar上传到liunx,并且在liunx创建一个Dockerfile,执行如下命令 touch Dockerfile vim Dockerfile 复制下面的代码
# 基于哪个镜像
FROM java:8
?? ?
# 将本地文件夹挂载到当前容器(后面tmp需要变更)
VOLUME /mydata/tmp
?? ?
# 就是你打包好的jar包名的名称
ADD ctyun-gateway.jar app.jar
RUN bash -c 'touch /app.jar'
?? ?
# 声明需要暴露的端口(就是你分布式中的端口号,约定端口)
EXPOSE 9080
?? ?
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
5.使用docker build命令构建镜像(镜像名称:版本号 .) docker build -t register:latest .?
6.启动镜像(改为我们之前约定好的部署端口) docker run --name dt-user -d -p 7083:7083 -t user
docker run --name dt-robot -d -p 7080:7080 -t robot docker run --network=host --name dt-gateway -d -p 7081:7081 -t register
// 把日志重定向到指定文件log.txt中 docker logs 容器id >> log.txt 2<&1
|