Docker构建微服务记录

通过Dockerfile文件来将springboot构建docker镜像
首先看下项目的目录结构
在这里插入图片描述
bin目录作为宿主机和容器的挂载目录。下属两个文件夹一个config用于放配置文件,一个log用于保存容器内运行产生的日志:
在这里插入图片描述
在配置文件中配置了springboot日志生成的路径

logging:
  file:
    path: bin/log

Dockerfile中配置的内容
将springboot添加到镜像里,启动时读取容器内部bin/config下的配置文件。启动容器时会进行挂载的操作,因为bin目录是挂载的宿主机的目录。相当于容器内能看到宿主机的文件,实现外部配置文件。

通过docker exec -it 容器id bash 进入容器命令行就能看到挂载的bin目录在这里插入图片描述

FROM openjdk:8
WORKDIR /usr/local/project/sass
ADD ./deyi-his-sass.jar /usr/local/project/sass/docker-deyi-his-sass.jar
ENTRYPOINT ["java","-jar","-Xms256M","-Xmx256M","/usr/local/project/sass/docker-deyi-his-sass.jar","--spring.config.location=/usr/local/project/sass/bin/config/application.yml"]

之后通过docker build去生成镜像

重点启动也就是通过docker run 启动一个容器时

docker run --hostname $1 --net=host --name $1 -v /usr/local/project/$1/bin:/usr/local/project/$1/bin -d $projectname:$DATE

1.–net=host
docker会自动生成一个默认的网卡docker0
在这里插入图片描述
容器会默认分配一个docker0下的一个ip地址,而在微服务中客户端注册到eureka就会使用这个docker分配的ip进行注册
在这里插入图片描述
这时如果服务存在跨机器调用是无法访问的。
需要在启动容器时通过–net=host,相当于是走宿主机的网络而不是走docker0,这样在实例注册时显示的就是实际的ip地址
在这里插入图片描述

2.-v /usr/local/project/$1/bin:/usr/local/project/$1/bin
来挂载宿主机的目录
在容器启动后,对应的日志就可以在宿主机的bin/log目录下看到
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值