当前位置: 首页 > article >正文

微服务容器化部署实践(FontConfiguration.getVersion)

文章目录

  • 前言
  • 一、整体步骤简介
  • 二、开始实战
    • 1.准备好微服务
    • 2.将各个微服务打包为镜像
      • 第一种
      • 第二种
    • 3. 将各个打包好的镜像,通过docker-compose容器编排,运行即可
  • 总结


前言

docker容器化部署微服务:

将微服务容器化部署到 Docker 容器中是一个常见的做法,可以提高应用的可移植性和可扩展性;因为镜像可以直接下载,并转移到其他服务,中间件等,用docker-compose容器化编排,也可以快速部署一套服务。


如何容器化部署微服务

一、整体步骤简介

  1. 准备好微服务
  2. 将各个微服务打包为镜像
  3. 将各个打包好的镜像,通过docker-compose容器编排,运行即可

二、开始实战

1.准备好微服务

准备好微服务,确保可以成功打为jar包,可以正常部署运行即可。

我这里准备好的微服务为maven构建的,执行

 mvn clean package -Dmaven.test.skip=true

跳过test;每个微服务都可以打包出target文件夹,其中包括jar包;
target
记住这个Dockerfile 和 target 文件夹的位置关系

2.将各个微服务打包为镜像

一般采用两种方式:

第一种

一种是通过将每个服务的jar 和 每个服务的Dockerfile 上传到服务器,然后分别运行命令

docker build -t knowledge:v1 .

这里的 knowledge:v1 , knowledge:为镜像名称 ,v1:为镜像版本
注意最后有一个 .

可以参考 docker镜像方式运行springboot项目jar

第二种

通过在idea中配置好Dockerfile 以及 docker,然后打包镜像到服务器

  • 编写Dockerfile
FROM openjdk:8-jdk-alpine
RUN apk add --no-cache bash ttf-dejavu fontconfig
COPY target/knowledge.jar.jar knowledge.jar
EXPOSE 8888
ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"
ENTRYPOINT ["java","-jar","knowledge.jar","$JAVA_OPTS"]

采用 openjdk:8-jdk-alpine 这个jdk版本
如果服务用到字体等,需要安装此插件
将打包的jar 发布到容器中
该容器对外暴漏的端口
设置启动环境参数
执行启动命令

  • idea 安装docker 插件,连接docker

ssh连接 身份验证信息 记得选择第二项 密钥对 , 不要选择用户名密码
docker连接

  • 配置好后,可以在此视图看到连接的服务器
    docker
  • 配置Dockefile运行参数
    配置
  • 详细配置展示,每个微服务的每个Dockerfile都配置一遍
    在这里插入图片描述

我这里有四个微服务,所以配置了四个

  • 一键打包所有服务为镜像并发布到服务器
    一键发布

3. 将各个打包好的镜像,通过docker-compose容器编排,运行即可

  • 编写docker-compose.yml
# version: '2.3'

services:
 # 中间件
 mysql:
   image: mysql:5.7.37
   container_name: mysql5.7.37
   restart: always
   environment:
     MYSQL_ROOT_PASSWORD: root
   volumes:
     - ./docker/mysql-data:/var/lib/mysql
     - ./docker/conf:/etc

http://www.kler.cn/a/390871.html

相关文章:

  • Python多进程间通讯(包含共享内存方式)
  • PHP搭建开发环境(Windows系统)
  • 10款PDF翻译工具的探索之旅:我的使用经历与工具特色!!
  • 客户案例 | 如何利用Ansys工具提供互联系统(以及系统的系统),从而使“软件定义汽车”成为可能
  • Java中的不可变集合:性能与安全并重的最佳实践
  • sql server启用远程连接与修改默认端口
  • kafka面试题part-3
  • 发包人一直恶意拖延审计,施工人如何破局?
  • 信息安全工程师(82)操作系统安全概述
  • MVVM前端开发模型,怎么快速定位问题
  • 库打包工具 rollup
  • Chromium127编译指南 Linux篇 - 编译前环境搭建(一)
  • 基于深度卷积二元分解网络的齿轮和轴承故障特征提取方法
  • 【LeetCode】【算法】11. 盛最多水的容器
  • C 语言学习-03【输入与输出】
  • 使用 Umami 部署博客分析工具
  • 达梦数据库配置本地守护
  • Execution failed for task ‘:app:compileDebugKotlin‘. 问题解决。
  • java数据结构与算法:栈
  • Unity3D UI 双击和长按
  • uni-app上拉加载更多⑩
  • 掌握 Java 集合框架:从基础到高级的全面指南
  • 量化交易系统开发-实时行情自动化交易-3.4.2.Okex行情交易数据
  • MySQL 常见时间字段设置
  • class com.alibaba.fastjson2.JSONObject cannot be cast to class com.ruoyi.sys
  • Redhat8.6安装JDK1.8