微服务部署-Docker
将基于spring boot的微服务部署到Docker
建议先看⼀下最后注意事项,因为部署时要修改源码配置信息再打包。
⽼师布置了⼤作业要把⾃⼰写的微服务部署⼀下,于是就有了这篇来记录我将微服务部署到docker上的流程。
本项⽬使⽤spring boot框架,MySQL5.7,nacos,并全部部署在Docker上。
1. 打包⼯程
因为使⽤的Maven,所以点⼀下Maven的package就可以很⽅便的将⼯程打包。我⼀共写了三个微服务,所以打包了三个jar包。按照习惯将打包好的jar包分别放到⾃⼰⽬录下的deploy⽂件夹中。
2. 制作Docker镜像
创建Dockerfile⽂件并将其放⼊jar包所在的⽂件夹中。
Dockerfile内容如下:
每个Dockerfile都⼤同⼩异。
完成后打开命令⾏,进⼊Dockerfile所在⽂件夹,输⼊ docker build -t 镜像名 . 后回车即可。记得命令最后还有⼀个“.”。
如此反复,将所有微服务都制作成docker镜像。
3. 建⽴docker network
因为该项⽬使⽤了MySQL数据库与nacos服务治理,所以当⼆者不在项⽬容器集中时需要network搭⼀个“桥”来连接。
创建network命令: docker network create --driver bridge aliment-network
4. 编写l⽂件
version:'3'
services:
mysql-5:
image: mysql:5.7
container_name: mysql-5
environment:
-"MYSQL_ROOT_PASSWORD=root"
ports:
- 3357:3306
networks:
default:
external:
name: aliment-network
version:'3'
services:
nacos-server:
image: nacos/nacos-server:1.4.2
container_name: nacos-server
environment:
MODE: standalone
ports:
-
mysql下载jar包 8848:8848
food-up-down-msg:
image: food-up-down-msg
container_name: food-up-down-msg
ports:
- 8083:8083
depends_on:
- food-msg-management
- nacos-server
food-platform-management:
image: food-platform-management
container_name: food-platform-management
ports:
- 8082:8082
depends_on:
- nacos-server
food-msg-management:
image: food-msg-management
container_name: food-msg-management
ports:
- 8081:8081
depends_on:
-
nacos-server
networks:
default:
external:
name: aliment-network
在这⾥我将mysql的端⼝映射为3357,实际的端⼝为3306.所有容器的network均为aliment-network。
5. 运⾏docker-compose
在docker-compose所在⽂件夹位置,命令⾏输⼊ -l up -d 创建mysql容器。输⼊ -l up -d 创建微服务容器集。
到这⾥基本就完成了微服务部署到Docker的操作。
6. 注意事项
微服务配置连接nacos时记得将localhost换位nacos的容器名。因为此时nacos与微服务均在docker中,localhost是本地宿主机的地址,更换后才能连接到。
spring.fig.server-addr=nacos-server:8848
同理,连接MySQL的配置也要从spring.datasource.url=jdbc:mysql://localhost:3357/
改为
spring.datasource.url=jdbc:mysql://mysql-5:3306/
不但localhost要改,端⼝号也要该,因为3357是对外界的端⼝映射,3306才是内界的端⼝号。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论