SpringCloud(五)将微服务项目构建成镜像

自定义镜像(单个部署) Dockerfile

 

 

 

基于java:8-alpine镜像,将一个java项目构建为镜像

 

 

构建:docker build -t javaweb:1.0 .     (-t 构建   名称:版本  最后面的. 是Dockerfile的目录)

 

 

 

集群部署 DockerCompose

Docker Compose 可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器

Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。(可以理解为是多个docker run 指令

写法类似于yml文件

Docker Compose的详细语法参考官网: https://docs.docker.com/compose/compose-file/

 

 

CentOS7 安装 DockerCompose 教程:

链接:https://pan.baidu.com/s/1ykmcSM0cYQnJkfUXsyKX_w 
提取码:6zjt

DockerCompose 下载地址:

链接:https://pan.baidu.com/s/1BrW4gBfFyWIDD5S2Z3MyTg
提取码:8bik

 

 

 

案例(一)与传统的docker run命令进行对比

 

 

案例(二)实战项目把微服务集群利用DockerCompose部署

 

1、新建项目文件夹cloud-demo把三个微服务文件夹创建一下,在每个微服务中准备好dockerfile文件 和 微服务的jar包

三个微服务的dockerfile内容配置成一致

FROM java:8-alpine
COPY ./app.jar /tmp/app.jar
ENTRYPOINT java -jar /tmp/app.jar
dockerfile

注意事项:

  1.1 -- 修改每个微服务yml文件中的nacos、数据库地址都改为docker-compose中的服务名(服务名见第三步docker-compose) 

    

     举例:     

        

  

 

  1.2 -- 三个微服务的pom文件中都配置好统一的build,这里的finalName即打包后生成的jar包的名字。

    配置的jar包的名字要与dockerfile中jar包的名字一致

 

  1.3 -- 改好pom文件后,使用maven工具将每个微服务打包,生成jar包放到对应的文件夹中。如图:

  

   

2、因为三个微服务依赖于mysql所以同时创建一个mysql文件夹。在mysql文件夹中创建好 conf 和 data 文件夹

  conf:存放mysql的一些配置。

  data:数据库表,数据。

 

3、创建 docker-compose.yml 文件。

 

 

version: "3.2"

services:
  nacos:
    image: nacos/nacos-server
    environment:
      MODE: standalone
    ports:
      - "8848:8848"
  mysql:
    image: mysql:5.7.25
    environment:
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "$PWD/mysql/data:/var/lib/mysql"
      - "$PWD/mysql/conf:/etc/mysql/conf.d/"
  userservice:
    build: ./user-service
  orderservice:
    build: ./order-service
  gateway:
    build: ./gateway
    ports:
      - "10010:10010"
docker-compose.yml

 

 

 

 

4、将项目文件夹cloud-demo上传至服务器,进入到cloud-demo文件夹,利用 docker-compose up -d 来部署,这里可能会失败(加载顺序或centos加载的比较慢问题),重新启动一下微服务就可以了。

     重启所有(这里是三个)微服务指令   docker-compose restart gateway userservice orderservice

 

创建并执行容器:

 

重启微服务:

 

 

 

 

备注:

  可以通过 docker-compose --help 来查看相关命令

  常用的有

  up 创建并执行容器  -- docker-compose up -d       -d代表后台运行

  stop 停掉     

  down 停掉并删除   

  restart 重启   

  logs 查看日志

 

posted @ 2024-04-01 11:22  一介桃白白  阅读(102)  评论(0编辑  收藏  举报