第1.2章 docker部署springboot应用

恕我是docker小白,自己做的springboot应用还不知道如何使用docker部署。于是只能寻求网上各种例子匹配到自己觉得应该是最合理的路数
如何在docker中部署springboot的web应用
这篇文章要求我们选择一个centos的基础镜像,我想应该不会那么复杂吧。
于是我先安装jdk,

docker pull index.tenxcloud.com/revolc/openjdk8-jre

上传到自己的私服上

docker tag  b3cd86bfca5c  192.168.4.27/dev/openjdk8-jre 
docker push 192.168.4.27/dev/openjdk8-jre

然后可以登陆harbor,执行docker pull 192.168.4.27/dev/openjdk8-jre:latest进行下载。
1 spring boot单应用部署
springboot的应用在这里不描述,网上一堆,
新建Dockerfile

FROM 192.168.4.27/dev/openjdk8-jre
VOLUME /tmp
ADD xxxcenter.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

将jar和dockerfile放到同一个目录中如下面所述
1
执行命令构建xxxcenter的镜像,注意.不能少

docker build -t center2018040401 .

启动xxxcenter中的服务,注意8761侧为docker对外的地址,8671是应用自身的地址,在浏览器中输入的是http://ip:8761进行访问

docker run -p 8761:8671 xxxcenter #这种在控制台可以看到日志
docker run -p 8761:8671 -d xxxcenter #这种方式不在控制台输出

1
执行docker ps,可以看到正在运行的程序
2
启动之后,如何停掉此应用呢,执行命令docker stop 容器名或容器ID
3
2 Eureka集群
关于Eureka的描述,可以参考Eureka简介,对Eureka和zookeeper对比,我个人觉得还是很容易看的明白的
Eureka作为服务的注册中心,即生产环境必须使用集群才能保证系统之间稳定运行
待解决。。。
3 docker-compose

FROM openjdk:8
VOLUME /tmp
ADD target/erueka-server.jar erueka-server.jar
EXPOSE 8761
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT [ "java","-Djava.security.egd=file:/dev/./urandom","-jar","/erueka-server.jar" ]
# 安装docker-compose
pip3 install docker-compose
# 

4 erueka注册的问题
在erueka中注册是内网ip,外部是无法访问的,下面两种都是不行的。
1

1
那么怎么办呢,在启动命令中添加EUREKA_INSTANCE_IP-ADDRESS,重新发布后,虽然看到的容器ip,但实际用的是主机ip

eureka:
  instance:
    prefer-ip-address: true
#    hostname: ${spring.cloud.client.ip-address}
    instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
  client:
    service-url:
      defaultZone: http://192.168.0.118:8761/eureka
    enabled: true
docker run -d --name gateway-server -p 8762:8762 -e “EUREKA_INSTANCE_IP-ADDRESS=192.168.0.118” gateway-server:0.0.1 

在我本地微服务,连接docker中的erueka后出现异常:

com.sun.jersey.api.client.ClientHandlerException: org.apache.http.NoHttpResponseException: 192.168.0.118:8761 failed to respond
	at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) ~[jersey-apache-client4-1.19.1.jar:1.19.1]
	at com.sun.jersey.api.client.filter.GZIPContentEncodingFilter.handle(GZIPContentEncodingFilter.java:123) ~[jersey-client-1.19.1.jar:1.19.1]
	at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27) ~[eureka-client-1.9.3.jar:1.9.3]
	at com.sun.jersey.api.client.Client.handle(Client.java:652) ~[jersey-client-1.19.1.jar:1.19.1]
	at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) ~[jersey-client-1.19.1.jar:1.19.1]
	at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74) ~[jersey-client-1.19.1.jar:1.19.1]
	at com.sun.jersey.api.client.WebResource$Builder.get(WebResource.java:509) ~[jersey-client-1.19.1.jar:1.19.1]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warrah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值