微服务部署-Docker

将基于spring boot的微服务部署到Docker

建议先看一下最后注意事项,因为部署时要修改源码配置信息再打包。

老师布置了大作业要把自己写的微服务部署一下,于是就有了这篇来记录我将微服务部署到docker上的流程。

本项目使用spring boot框架,MySQL5.7,nacos,并全部部署在Docker上。

1. 打包工程

因为使用的Maven,所以点一下Maven的package就可以很方便的将工程打包。我一共写了三个微服务,所以打包了三个jar包。按照习惯将打包好的jar包分别放到自己目录下的deploy文件夹中。

2. 制作Docker镜像

创建Dockerfile文件并将其放入jar包所在的文件夹中。
dockerfileDockerfile内容如下:
dockerfile内容每个Dockerfile都大同小异。

完成后打开命令行,进入Dockerfile所在文件夹,输入 docker build -t 镜像名 . 后回车即可。记得命令最后还有一个“.”。

如此反复,将所有微服务都制作成docker镜像。

3. 建立docker network

因为该项目使用了MySQL数据库与nacos服务治理,所以当二者不在项目容器集群中时需要network搭一个“桥”来连接。

创建network命令: docker network create --driver bridge aliment-network

4. 编写docker-compose.yml文件

mysql-docker-compose.yml:

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

docker-compose.yml:

version: '3'

services:
  nacos-server:
    image: nacos/nacos-server:1.4.2
    container_name: nacos-server
    environment:
      MODE: standalone
    ports:
      - 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所在文件夹位置,命令行输入docker-compose.exe -f mysql-docker-compose.yml up -d 创建mysql容器。输入docker-compose.exe -f docker-compose.yml up -d 创建微服务容器集群。

到这里基本就完成了微服务部署到Docker的操作。

6. 注意事项

微服务配置连接nacos时记得将localhost换位nacos的容器名。因为此时nacos与微服务均在docker中,localhost是本地宿主机的地址,更换后才能连接到。
spring.cloud.nacos.config.server-addr=nacos-server:8848
同理,连接MySQL的配置也要从spring.datasource.url=jdbc:mysql://localhost:3357/
改为
spring.datasource.url=jdbc:mysql://mysql-5:3306/
不但localhost要改,端口号也要该,因为3357是对外界的端口映射,3306才是内界的端口号。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值