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

微服务容器化部署实践(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.37container_name: mysql5.7.37restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: rootvolumes:- ./docker/mysql-data:/var/lib/mysql- ./docker/conf:/etc

http://www.mrgr.cn/news/71034.html

相关文章:

  • JAVA学习日记(十五) 数据结构
  • Nginx 的 proxy_pass 使用简介
  • 【LeetCode】【算法】64. 最小路径和
  • Vivado+Vscode联合打造verilog环境
  • 如何开展小组讨论以强化员工对六西格玛的关注度?
  • sealos部署K8s,安装docker时master节点突然NotReady
  • 【大模型推理】KV缓冲
  • ORM框架-SQL Sugar第一集
  • 【回文日期——模拟】
  • React的基础API介绍(一)
  • 第12课 二维数组(1)
  • 世界职院技能大赛视角下,高职高专技能人才高阶素养培育路径探究
  • CRM系统用户满意度调查:哪些品牌最受欢迎
  • 量化交易系统开发-实时行情自动化交易-3.4.1.4.A股衍生数据
  • Spring资源加载模块,原来XML就这,活该被注解踩在脚下 手写Spring第六篇了
  • 浅谈c++函数调用以及析构函数为虚函数的原因
  • 基于Ubuntu2410脚本搭建OpenStack-D版
  • 青训5_1112_01 小S的倒排索引(内置方法 set(a) set(b) 及sorted 排序)
  • No module named ‘torch.nn.attention‘
  • 【C++】C++基础知识
  • 期权懂|你知道场外个股期权该如何参与吗?
  • 微服务改造:踩过的坑!
  • 2. Sharding-JDBC广播表和绑定表操作
  • 阿里云Linux安装Docker服务报错问题
  • 【轻松远程处理图片:在线图片编辑工具Photopea群晖NAS部署解决方案】
  • 解决 C/C++ 中 “invalid use of incomplete type” 编译错误