使用Docker打包注册中心,上传私有镜像仓库并部署
1、新增maven插件
<properties>
<docker.image.prefix>xdclass</docker.image.prefix>
</properties>
<build>
<finalName>docker-demo</finalName>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
2、新建Dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
3、打包:
mvn install dockerfile:build
maven打包构建,会触发单元测试,部分情况可以跳过,
mvn install -Dmaven.test.skip=true dockerfile:build
#eureka的地址
eureka:
client:
serviceUrl:
defaultZone: http://172.19.24.198:8761/eureka/
instance:
instance-id: ${spring.cloud.client.ip-address}:${server.port}
prefer-ip-address: true
4、推送阿里云镜像仓库
阿里云镜像仓库:https://dev.aliyun.com/search.html
docker tag 062d2ddf272a registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:eureka-v20180825
docker push registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:eureka-v20180825
docker pull registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:eureka-v20180825
5、查看日志 docker logs -f containerid
配置中心
1、部署 rabbitmq: docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:management
2、推送镜像
docker tag 0f636543904e registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:config-server-v20180825
docker push registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:config-server-v20180825
docker pull registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:config-server-v20180825
docker start 容器id 进行启动
安装redis
1、搜索镜像 docker search redis
2、拉取 docker pull docker.io/redis
3、启动 docker run --name "xd_redis" -p 6379:6379 -d 4e8db158f18d
参考:
docker run --name "xd_redis" -p 6379:6379 -d 4e8db158f18d --requirepass "123456" -v $PWD/data:/data
-v 路径映射
$PWD 当前路径 左边:右边
左边:本机(linux)
右边:docker中的映射路径
4、访问redis容器里面,进行操作
docker exec -it 295058d2b92e redis-cli
-it 交互模式
295058d2b92e 容器id
进去后启动redis-cli
生产环境部署常见问题,配置中心访问路径变化
1、配置中心访问出错,路径不对
解决:修改所有的注册中心,增加下面配置
instance:
instance-id: ${spring.cloud.client.ip-address}:${server.port}
prefer-ip-address: true
instanct-id:实例的组成
prefer-ip-address: true 用ip进行显示
(注意:springcloud2.2之后要用中划线 - )
之后的其他服务就可以通过这个进行信息的拉取
docker tag 50a12cd66210 registry.cn-shenzhen.aliyuncs.com/xdclass/xdclass_images:config-server-v20180826
打包Docker镜像部署商品服务和订单服务、网关
注意:
1、maven打包构建,会触发单元测试,部分情况可以跳过,
mvn install -Dmaven.test.skip=true dockerfile:build
2、生产环境不能用localhost 或者 127.0.0.1, 一定要用内网通信ip (虚拟主机映射 hosts)