采用consul作為注冊中心
docker部署consul服務器參加:https://www.cnblogs.com/stubborn-dude/p/14086700.html
其本地application.properties配置文件內容:
spring.cloud.consul.host=host.docker.internal
spring.cloud.consul.host=127.0.0.1
spring.cloud.consul.port=8500
spring.application.name=consul-hi
server.port=8504
spring.cloud.consul.discovery.health-check-path=/health
spring.cloud.consul.discovery.health-check-interval=15s
spring.cloud.consul.discovery.service-name=consul-hi
spring.zipkin.base-url=http://127.0.0.1:9411
spring.sleuth.sampler.probability=1.0
Aplication類中增加如下代碼
@RequestMapping("/hi")
public String hi(String name){
return new StringBuilder().append("Hello world! ").append(name).
append(",你的端口為").append(port).toString();
}
打包springboot工程,(需要提前啟動consule,jUnit報錯)
打包完成如圖
用本地java 命令 運行是否正常
命令:java -jar consul-producer-1.0.0.jar
運行正常
新建一個Dockerfile文件
Dockerfile文件內容:
FROM openjdk:8-jdk-alpine
MAINTAINER https://自己的加速.mirror.aliyuncs.com
ADD consul-producer-1.0.0.jar producer-1.0.0.jar
CMD java -jar producer-1.0.0.jar
powershell命令進入Dockerfile目錄后執行命令:
docker build -f .\Dockerfile -t demo .
上面的(.)點必須要有
docker會分層構建完成,使用docker images 查看鏡像
docker run -p 8888:8504 -t demo(第一個端口是docker訪問的端口,第二個是原springboot應用監聽的端口,兩個可以一致)
或者這么寫 docker run -it --name=gq_demo -p 8888:8504 demo
對於mac和windows,可以使用host.docker.internal替換127.0.0.1
刪除鏡像
1.查看所有運行中的容器docker ps -a;
2.停止容器運行docker stop container-id;
3.刪除這個容器docker rm container-id;
4.docker images查看鏡像ID
5.刪除這個鏡像docker rmi image-id。
idea用docker發布項目
https://mp.weixin.qq.com/s/Ra9tILYgcIYrdeo2IqESVg