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

docker部署微服务

目录

docker操作命令

镜像操作命令

拉取镜像

导出镜像

删除镜像

加载镜像

推送镜像

部署

pom文件加上

在每个模块根目录加上DockerFile文件

项目根目录加上docker-compose.yml文件

打包,clean,package

服务器上新建文件夹

测试docker-compose是否安装

构建镜像

检查配置是否有问题,在新建的目录下

启动


docker操作命令

镜像操作命令

# 查看 docker 命令及帮助
docker --help
# 查看指定命令的帮助
docker [command] --help
# 查看当前所拥有的镜像
docker images

拉取镜像

# 拉取镜像,未指定版本则拉取最新版,latest
docker pull [ image : {version} ]
# 示例:拉取 nginx1.22版
docker pull nginx:1.22

导出镜像

# 导出一个镜像到磁盘的指定文件,同一个镜像有多个版本时,需要指定版本号
docker save -o [file] [image]:[tag]
# 示例:将 nginx 镜像 导出到 /image/mynginx.tar 文件中
docker save -o /image/mynginx.tar nginx

删除镜像

# 删除一个镜像,(删除镜像时必须指定版本号)
docker rmi [image]:[tag]
# 示例:删除 nginx 1.22
docker rmi nginx:1.22

加载镜像

# 将程序的镜像文件加载到 docker 中, ( -q 表示是否输出加载的过程)
docker load -i [ file ] { -q }
# 示例:将 nginx镜像 文件加载到 docker中
docker load -i /image/mynginx.tar

推送镜像

# 将镜像文件推送到远程
docker push -a [name]:[tag]

部署

pom文件加上

    <build><finalName>app</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

在每个模块根目录加上DockerFile文件

# 基础镜像
FROM openjdk:8
# 创建容器默认进入的目录
WORKDIR /app
# 复制jar包到容器中
COPY app.jar /app/app.jar
# 暴露端口 应该保持和源代码端口一致
EXPOSE 6000
# 启动命令
ENTRYPOINT ["java","-jar","-Xms100m","-Xmx100m"]
CMD ["app.jar"]

项目根目录加上docker-compose.yml文件

version: "3.8"networks:# 自定义docker网络名test:services:# 定义服务名字,只要不冲突即可mail-gateway:# 镜像名字或者idimage: mail-gateway# 自定义容器名字container_name: mail-gateway# 映射端口ports:- "88:88"# 网络networks:- testmail-auth:image: mail-authcontainer_name: mail-authports:- "6000:6000"networks:- testmail-email:image: mail-emailcontainer_name: mail-emailports:- "20000:20000"networks:- testmail-user:image: mail-usercontainer_name: mail-userports:- "10000:10000"networks:- testmail-common:image: mail-commoncontainer_name: mail-common
#    ports:
#      - "10000:10000"networks:- test

打包,clean,package

服务器上新建文件夹

测试docker-compose是否安装

docker-compose --version

构建镜像

docker build -t mail-auth /www/wwwroot/yangsaiya/project/distributed-mail/mail-auth/

检查配置是否有问题,在新建的目录下

docker-compose config -q

启动

docker-compose up

相关文章:

docker部署微服务

目录 docker操作命令 镜像操作命令 拉取镜像 导出镜像 删除镜像 加载镜像 推送镜像 部署 pom文件加上 在每个模块根目录加上DockerFile文件 项目根目录加上docker-compose.yml文件 打包&#xff0c;clean&#xff0c;package 服务器上新建文件夹 测试docker-compo…...

统计voc格式数据中的xml标签、bndbox到excel表格中

有这么个需求是将xml的内容: 1,filename 2.label 3.bndbox:xmin,xmax,ymin,ymax。 … 将这些东西写入excel表格中,方便我统计标签数量和框的分布! 于是撰写了脚本:xml2csv.py 我的xml文件形式如下。大家的目标检测格式大同小异! <annotation><folder>UAV_d…...

51单片机利用I/O口高阻状态实现触摸控制LED灯

51单片机利用I/O口高阻状态实现触摸控制LED灯 1.概述 这篇文章介绍使用I/O口的高阻状态实现一个触摸控制LED灯亮灭的实验。该实验通过手触摸P3.7引脚&#xff0c;改变电平信号控制灯的亮灭。 2.实验过程 2.1.实验材料 名称型号数量单片机STC12C20521LED彩灯无1晶振12MHZ1电…...

自动驾驶术语汇总

目录 智驾级别芯片相关自动驾驶相关辅助驾驶相关预警相关传感器相关泊车相关安全相关车灯相关 智驾级别 L0-L2属于辅助驾驶&#xff0c;L4-L5才算自动驾驶 L0&#xff08;Level 0&#xff09;&#xff1a;无自动化。这是大多数传统汽车的级别&#xff0c;所有的驾驶任务都需要…...

Jsonpath - 数据中快速查找和提取的强大工具

JSON&#xff08;JavaScript Object Notation&#xff09;在现代应用程序中广泛使用&#xff0c;但是如何在复杂的JSON数据中 查找和提取所需的信息呢&#xff1f; JSONPath是一种功能强大的查询语言&#xff0c;可以通过简单的表达式来快速准确地定位和提取JSON数据。本文将介…...

java中,通过替换word模板中的关键字后输出一个新文档

一、要用到的jar包 我已上传了相关的jar包&#xff0c;需要的可以通过以下链接直接下载&#xff1a; https://download.csdn.net/download/qq_27387133/88558034 具体jar包截图&#xff1a; 二、实现的代码 注意&#xff1a;文件要用docx格式!!! word变量替换的方法&#…...

MySQL数据库约束你真的懂吗?

✏️✏️✏️今天给各位带来的是关于数据库约束方面的知识 清风的CSDN博客 &#x1f61b;&#x1f61b;&#x1f61b;希望我的文章能对你有所帮助&#xff0c;有不足的地方还请各位看官多多指教&#xff0c;大家一起学习交流&#xff01; 动动你们发财的小手&#xff0c;点点关…...

YOCTO 下载repo工具失败解决办法

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repocp repo ~/binchmod ax ~/bin/repo如果使用时报错&#xff0c; 切换ubuntu 到 python3 版本。gedit repo 修改repo默认链接地址&#xff1a;REPO_URL "https://gerrit.googlesource.com/git-repo"…...

github连接失败Host key verification failed.解决方案

问题描述 之前一直用的gitee协同协作&#xff0c;然后再最近一次云计算项目中团队使用的是github进行协作&#xff0c;但是按照常规步骤再GitHub上配置了ssh密钥后&#xff0c;却依然显示连接失败&#xff0c;无法推送和拉取代码&#xff0c;克隆仓库也是报错拒绝。具体报错信…...

【TIDB】TiDB认证考试PTCA 练习题 题库

目录 题目 答案 解析 题目 1.下列功能是由 TiKV 或 TiFlash 实现的为&#xff1f;&#xff08; 选 2 项 &#xff09; A. 根据集群中 Region 的信息&#xff0c;发出调度指令 B. 对于 OLAP 和 OLTP 进行业务隔离 C. 将关系型数据转化为 KV 存储进行持久化 D. 将 KV 存储…...

PPP/INS紧组合算法

前言&#xff1a;在学习紧组合之前学会GNSS/INS松组合是很有必要的&#xff0c;i2NAV团队开源的KF_GINS项目可以作为GNSS/INS松组合学习模板&#xff0c;本文章主要对武汉大学i2NAV发布的PPP/INS紧组合学习资源进行算法层面的总结&#xff0c;链接&#xff1a; 武汉大学多源智…...

c++ 演讲比赛流程管理系统 / from.黑马

...

【shell】 1、bash语法超详细介绍

文章目录 修改前缀路径dirname set常用函数参数变量local 返回值正则打印第 n 行获取行号核对数据库各表数量jq查询检查日志 sshpassexpect数组xargs bash manual 修改前缀 参考 export PS1"bash> "路径 dirname strip last component from file name dir$(…...

华清远见嵌入式学习——网络编程——作业3

目录 作业要求&#xff1a;基于UDP的TFTP文件传输 代码 下载功能效果图​编辑 上传功能效果图 思维导图 模拟面试题和答案&#xff08;定期更新&#xff09; 作业要求&#xff1a;基于UDP的TFTP文件传输 完成文件的上传和下载功能 代码 #include<myhead.h>//实现…...

前端学习--React(3)

一、Redux 集中状态管理工具&#xff0c;不需要react即可使用&#xff0c;每个store的数据都是独立于组件之外的 vue小链接&#xff1a;vuex/pinia 基本使用 Redux将数据修改流程分成三个概念&#xff0c;state、action和reducer state - 一个对象 存放我们管理的数据状态 a…...

rotation matrix reflection matrix

文章目录 1. rotation matrix1.1 结论 2. reflection matrix2.1 结论 1. rotation matrix 图像逆时针旋转 θ \theta θ的矩阵 Q r o t a t e [ cos ⁡ θ − sin ⁡ θ sin ⁡ θ cos ⁡ θ ] (1) Q_{rotate}\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\c…...

Python基础教程: sorted 函数

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 sorted 可以对所有可迭代的对象进行排序操作&#xff0c; sorted 方法返回的是一个新的 list&#xff0c;而不是在原来的基础上进行的操作。 从新排序列表。 &#x1f447; &#x1f447; &#x1f447; 更多精彩机密、教程…...

Vue 重写push和replace方法,解决:Avoided redundant navigation to current location

当我们使用编程式路由导航跳转路径时&#xff0c;如果我们两次携带同样的参数进行跳转&#xff0c;会进行页面报错&#xff1a; 那产生这个问题的原因是什么呢&#xff1f; 我们接收并输出调用push方法返回的结果&#xff1a; 会发现这是一个Promise对象 我们都知道&#xff…...

43、vue导出pdf文件,并解决滚动条外内容无法获取的问题

使用插件html2canvas和jspdf插件 下载完两个插件后引入所需要的页面 import html2canvas from "html2canvas" import jsPDF from "jspdf"1、在导出之前将元素的高度或者宽度设置为滚动高度或者宽度&#xff0c;如&#xff1a; el.style.height el.scro…...

牛客 最小公配数 golang版实现

题目请参考: HJ108 求最小公倍数 题解: 在大的数的倍数里面去找最小的能整除另外一个数的数&#xff0c;就是最小公倍数&#xff0c;按照大的来找&#xff0c;循环次数能够降到很少&#xff0c;提升效率 golang实现: package mainimport ("fmt" )func main() {a : …...

艾体宝干货|【Redis实用技巧#17】语义缓存(Semantic Caching):LLM 的第一道防线

在大多数 AI 应用里&#xff0c;工程师第一反应通常是&#xff1a; “怎么优化模型调用&#xff1f;怎么选更便宜的模型&#xff1f;” 但一个更本质的问题是&#xff1a;为什么这么多请求本来就不该进模型&#xff1f; 这就是语义缓存的价值。 传统缓存为什么在 AI 时代失效…...

核心交易底座:ZIL 加速与 QSAL 防并发损耗解析

核心交易底座&#xff1a;ZIL 加速与 QSAL 防并发损耗解析在金融行业的核心交易系统&#xff08;如高频交易撮合引擎或 Oracle 结算数据库&#xff09;中&#xff0c;数据中心对底层存储的考核指标极其严苛&#xff1a;一方面&#xff0c;每一次交易事务&#xff08;Transactio…...

【flutter for open harmony】第三方库Flutter 鸿蒙版 音量调节器 实战指南(适配 1.0.0)✨

Flutter实战&#xff1a;开源鸿蒙音量调节器组件 Flutter 三方库 cached_network_image 的鸿蒙化适配与实战指南 欢迎加入开源鸿蒙跨平台社区&#xff1a; https://openharmonycrossplatform.csdn.net 本文详细介绍如何在Flutter鸿蒙应用中实现一个音量调节器组件&#xff0c;…...

别再让信号衰减拖后腿!手把手教你理解PCIe 3.0的动态均衡(附Preset等级详解)

PCIe 3.0动态均衡实战指南&#xff1a;从理论到调试的完整解决方案 在高速数字电路设计中&#xff0c;信号完整性始终是工程师面临的核心挑战之一。当PCIe 3.0信号速率达到8GT/s时&#xff0c;哪怕几英寸的PCB走线都可能成为信号质量的致命杀手。我曾亲眼见证过一个原本运行稳定…...

视频压缩技巧:如何最大限度减小文件大小,同时保持优质画质?

在现代社交媒体和视频共享平台的流行背景下&#xff0c;视频压缩成为了一项重要的任务。压缩视频可以减小文件大小&#xff0c;提高传输速度和存储效率&#xff0c;同时确保视频画质的优质保持。本文将介绍一些常用的视频压缩技巧和工具&#xff0c;帮助您实现视频文件的瘦身。…...

别再瞎猜了!我用JavaScript模拟了100万次双色球购买,告诉你‘守号’到底有没有用

用JavaScript模拟百万次双色球&#xff1a;守号策略的数学真相 每次路过彩票站&#xff0c;总能看到有人拿着小本本认真记录往期开奖号码。作为程序员&#xff0c;我更习惯用代码来验证这些民间"秘籍"的实际效果。今天我们就用JavaScript构建一个双色球模拟系统&…...

Claude Code:AI智能体如何重塑开发工作流,从命令行到智能协作

1. 从命令行到智能体&#xff1a;为什么Claude Code是开发者的下一个必备工具如果你和我一样&#xff0c;每天有超过一半的时间是在终端里度过的&#xff0c;那么你肯定理解那种在命令行、代码编辑器和浏览器之间不断切换带来的割裂感。传统的开发流程中&#xff0c;我们手动执…...

Podinfo:云原生微服务样板间,从部署到集成的完整实践指南

1. 项目概述&#xff1a;为什么我们需要一个“样板间”微服务&#xff1f;在云原生和微服务架构成为主流的今天&#xff0c;无论是初创团队还是大型企业&#xff0c;启动一个新服务时都面临一个共同问题&#xff1a;如何快速搭建一个符合生产环境标准的“样板间”&#xff1f;这…...

告别点灯!用ST7789V2 TFT屏在STM32上玩点高级的:动态刷新与GUI框架入门

ST7789V2 TFT屏进阶指南&#xff1a;从动态刷新到轻量级GUI框架实战 在嵌入式开发领域&#xff0c;ST7789V2驱动的TFT屏因其优异的性价比和丰富的显示能力&#xff0c;已成为众多项目的首选。但大多数开发者仅停留在基础字符显示阶段&#xff0c;未能充分发挥这块屏幕的真正潜力…...

数字音乐格式困境与用户主权革命:QMCDecode如何重塑音乐文件所有权范式

数字音乐格式困境与用户主权革命&#xff1a;QMCDecode如何重塑音乐文件所有权范式 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&…...