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

使用dockerfile安装各种服务组件

使用dockerfile安装各种服务组件
elasticsearch、minio、mongodb、nacos、redis

一、使用dockerfile安装elasticsearch:7.8.0

1、Dockerfile文件

FROM elasticsearch:7.8.0
#添加分词器
ADD elasticsearch-analysis-ik /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik
ENV discovery.type=single-node

2、构建镜像

docker build -f Dockerfile -t elasticsearch . 

3、运行容器
需要绑定9200、9300端口
其中,-p 指令指定了容器的端口映射,-d 指令指定了容器在后台运行。

docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -d elasticsearch 

4、使用到的Dockerfile文件和ik文件内容
相关文件
https://download.csdn.net/download/m0_37924754/88189473

二、使用dockerfile安装minio

1、Dockerfile文件

# 基础镜像
FROM minio/minio
# author
MAINTAINER It-小白EXPOSE 9000 9001ENTRYPOINT ["minio", "server", "/data"]

2、构建镜像

docker build -f Dockerfile -t minio . 

3、运行容器
需要绑定9000、9001端口
其中,-p 指令指定了容器的端口映射,-d 指令指定了容器在后台运行,
-v /home/minio/data:/data 挂载数据
-v /home/minio/.minio:/root/.minio 挂载配置
–console-address “:9001” 配置控制台地址

docker run -p 9000:9000 -p 9001:9001 -v /home/minio/data:/data -v /home/minio/.minio:/root/.minio --name minio -d minio --console-address ":9001"

4、相关文件

三、使用dockerfile安装mongodb

1、Dockerfile文件

FROM centos:7.5.1804
MAINTAINER It-小白LABEL Discription="基于centos的mongodb镜像" version="1.0"RUN mkdir -p /data/usrADD mongodb-linux-x86_64-rhel70-5.0.6 /data/usr/mongodbRUN mkdir /data/usr/mongodb/{data,logs}ENV PATH /data/usr/mongodb/bin:$PATHEXPOSE 27017WORKDIR /data/usr/mongodb/bin/
COPY mongodb.conf .
CMD ["mongod","-f", "mongodb.conf"]

2、构建镜像

docker build -f Dockerfile -t mongodb . 

3、运行容器
需要绑定27017 端口
其中,-p 指令指定了容器的端口映射,-d 指令指定了容器在后台运行

docker run -p 27017:27017 --name mongodb -d mongodb 

4、相关文件

四、使用dockerfile安装nacos

1、Dockerfile文件
MYSQL_SERVICE_HOST 数据库连接IP
MYSQL_SERVICE_PORT 端口
MYSQL_SERVICE_DB_NAME 数据库名称
MYSQL_SERVICE_USER 数据库账号
MYSQL_SERVICE_PASSWORD 数据库密码
MYSQL_SERVICE_DB_PARAM 数据库连接配置

# 基础镜像
FROM nacos/nacos-server:v2.1.2
# author
MAINTAINER It-小白EXPOSE 8848 9848 9849
ENV MODE=standalone SPRING_DATASOURCE_PLATFORM=mysql MYSQL_SERVICE_HOST=127.0.0.1 MYSQL_SERVICE_PORT=12306 MYSQL_SERVICE_DB_NAME=yshop_cloud_nacos MYSQL_SERVICE_USER=root MYSQL_SERVICE_PASSWORD=Xyj@0127... MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
ENV JVM_XMS=256m JVM_XMX=256m JVM_XMN=128m JVM_MS=64m JVM_MMS=128m

2、构建镜像

docker build -f Dockerfile -t nacos . 

3、运行容器
需要绑定8848 、9848、9849 端口
其中,-p 指令指定了容器的端口映射,-d 指令指定了容器在后台运行

docker run -p 8848:8848 -p 9848:9848 -p 9849:9849 -v /mydata/logs/nacos:/home/nacos/logs --name nacos --d nacos 

4、相关文件

五、使用dockerfile安装rabbitmq

1、Dockerfile文件

# 基础镜像
FROM rabbitmq:3.7.7-management
# author
MAINTAINER It-小白ENV RABBITMQ_DEFAULT_USER=admin RABBITMQ_DEFAULT_PASS=admin

2、构建镜像

docker build -f Dockerfile -t rabbitmq . 

3、运行容器
需要绑定15672 、5672端口
其中,-p 指令指定了容器的端口映射,-d 指令指定了容器在后台运行

docker run -p 15672:15672 -p 5672:5672 --name rabbitmq -d rabbitmq 

4、相关文件

六、使用dockerfile安装redis

1、Dockerfile文件

# 基础镜像
FROM redis
# author
MAINTAINER It-小白

2、构建镜像

docker build -f Dockerfile -t redis . 

3、运行容器
需要绑定6379 端口
其中,-p 指令指定了容器的端口映射,-d 指令指定了容器在后台运行
–requirepass 密码

docker run -p 6379:6379 -v /mydata/redis/data:/data --name redis redis --requirepass 123456 --appendonly yes

4、相关文件

六、使用dockerfile安装seata-server:1.6.1

1、Dockerfile文件

FROM seataio/seata-server:1.6.1COPY ./resource /seata-server/resourcesENV SEATA_IP=127.0.0.1
ENV SEATA_PORT=8091

2、application.yml文件
COPY ./resource /seata-server/resources 里面的配置文件
修改nacos连接配置

server:port: 7091spring:application:name: seata-serverlogging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seataextend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstashconsole:user:username: seatapassword: seataseata:config:# support: nacos, consul, apollo, zk, etcd3type: nacosnacos:server-addr: 127.0.0.1:8848namespace: prodgroup: SEATA_GROUPusername: nacospassword: nacos# 该data-id需要在nacos中在进行配置data-id: seata.propertiesregistry:# support: nacos, eureka, redis, zk, consul, etcd3, sofatype: nacosnacos:application: seata-serverserver-addr: 127.0.0.1:8848group: SEATA_GROUPnamespace: prodcluster: defaultusername: nacospassword: nacosstore:# support: file 、 db 、 redismode: db#  server:#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

3、seata.properties
配置放到nacos,修改配置文件中的数据库连接地址、账号、密码

#For details about configuration items, see https://seata.io/zh-cn/docs/user/configurations.html
#Transport configuration, for client and server
transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableTmClientBatchSendRequest=false
transport.enableRmClientBatchSendRequest=true
transport.enableTcServerBatchSendResponse=false
transport.rpcRmRequestTimeout=30000
transport.rpcTmRequestTimeout=30000
transport.rpcTcRequestTimeout=30000
transport.threadFactory.bossThreadPrefix=NettyBoss
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler
transport.threadFactory.shareBossWorker=false
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector
transport.threadFactory.clientSelectorThreadSize=1
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread
transport.threadFactory.bossThreadSize=1
transport.threadFactory.workerThreadSize=default
transport.shutdown.wait=3
transport.serialization=seata
transport.compressor=none#Transaction routing rules configuration, only for the client
service.vgroupMapping.default_tx_group=default
service.vgroupMapping.mall-mall-biz-group=default
service.vgroupMapping.mall-auth-group=default
service.vgroupMapping.mall-upms-biz-group=default
service.vgroupMapping.mall-weixin-biz-group=default
#If you use a registry, you can ignore it
service.default.grouplist=192.168.2.213:8092
service.enableDegrade=false
service.disableGlobalTransaction=false#Transaction rule configuration, only for the client
client.rm.asyncCommitBufferLimit=10000
client.rm.lock.retryInterval=10
client.rm.lock.retryTimes=30
client.rm.lock.retryPolicyBranchRollbackOnConflict=true
client.rm.reportRetryCount=5
client.rm.tableMetaCheckEnable=true
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.rm.sagaJsonParser=fastjson
client.rm.tccActionInterceptorOrder=-2147482648
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
client.tm.interceptorOrder=-2147482648
client.undo.dataValidation=true
client.undo.logSerialization=jackson
client.undo.onlyCareUpdateColumns=true
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
client.undo.logTable=undo_log
client.undo.compress.enable=true
client.undo.compress.type=zip
client.undo.compress.threshold=64k
#For TCC transaction mode
tcc.fence.logTableName=tcc_fence_log
tcc.fence.cleanPeriod=1h#Log rule configuration, for client and server
log.exceptionRate=100#Transaction storage configuration, only for the server. The file, DB, and redis configuration values are optional.
store.mode=db#These configurations are required if the `store mode` is `db`. If `store.mode,store.lock.mode,store.session.mode` are not equal to `db`, you can remove the configuration block.
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:12306/yshop_cloud_seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password=root
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000#Transaction rule configuration, only for the server
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.distributedLockExpireTime=10000
server.xaerNotaRetryTimeout=60000
server.session.branchAsyncQueueSize=5000
server.session.enableBranchAsyncRemove=false
server.enableParallelRequestHandle=false#Metrics configuration, only for the server
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898
2、构建镜像```bash
docker build -f Dockerfile -t redis . 

3、运行容器
需要绑定6379 端口
其中,-p 指令指定了容器的端口映射,-d 指令指定了容器在后台运行
–requirepass 密码

docker run -p 6379:6379 -v /mydata/redis/data:/data --name redis redis --requirepass 123456 --appendonly yes

4、相关文件

七、使用dockerfile部署java服务

1、Dockerfile文件

# 基础镜像
FROM openjdk:8u212-jreMAINTAINER It-小白ENV TZ=Asia/Shanghai
ENV JAVA_OPTS="-Xms128M -Xmx512M -XX:PermSize=32M -XX:MaxPermSize=64M -Djava.security.egd=file:/dev/./urandom"RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezoneRUN mkdir -p /appENV NACOS_ADDRESS=10.0.4.17:8848 SERVER_IP=10.0.4.17WORKDIR /appEXPOSE 9202ADD ./target/app.jar ./CMD java $JAVA_OPTS -jar app.jar --spring.profiles.active=prod --nacos.server-addr=$NACOS_ADDRESS --nacos.server-ap=$SERVER_IP

2、构建镜像

docker build -f Dockerfile -t java_app . 

3、运行容器
需要绑定9000、9001端口
其中,-p 指令指定了容器的端口映射,-d 指令指定了容器在后台运行,
-v /home/minio/data:/data 挂载数据
-v /home/minio/.minio:/root/.minio 挂载配置
–console-address “:9001” 配置控制台地址

docker run -p 9202:9202 -v /mydata/logs/app:/app/logs -v /mydata/data/files/file:/home/files/file -v /mydata/data/files/avatar:/home/files/avatar --name java_app -d  java_app  

4、相关文件

相关文章:

使用dockerfile安装各种服务组件

使用dockerfile安装各种服务组件 elasticsearch、minio、mongodb、nacos、redis 一、使用dockerfile安装elasticsearch:7.8.0 1、Dockerfile文件 FROM elasticsearch:7.8.0 #添加分词器 ADD elasticsearch-analysis-ik /usr/share/elasticsearch/plugins/elasticsearch-anal…...

如何简单的无人直播

环境搭建 ffmpeg安装,我这里用的是centos搭建的,其他平台可以自己百度 yum -y install wgetwget --no-check-certificate https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.0.3-64bit-static.tar.xztar -xJf ffmpeg-4.0.3-64bit-static.ta…...

【基于HBase和ElasticSearch构建大数据实时检索项目】

基于HBase和ElasticSearch构建大数据实时检索项目 一、项目说明二、环境搭建三、编写程序四、测试流程 一、项目说明 利用HBase存储海量数据,解决海量数据存储和实时更新查询的问题;利用ElasticSearch作为HBase索引,加快大数据集中实时查询数…...

ProComponent 用法学习

相信很多同学都用过 Ant Design 这一 react 著名组件库,而 ProComponents 则是在 antd 之上进行封装的页面级组件库(指一个组件就可以搞定一个页面)。它同时也是 Ant Design Pro 中后台框架所用的主要组件库。如果你手上有要用 react 开发的中…...

巨人互动|Google海外户Google Analytics的优缺点是什么?

Google Analytics是一个由谷歌开发的网站分析工具,旨在帮助网站和移动应用程序运营者收集和分析数据,以更好地了解用户行为和改进业务。虽然Google Analytics具有许多优势,但也存在一些缺点。在本文中,我们将探讨Google Analytics…...

MySQL数据库的操作

MySQL 连接服务器 库的操作创建数据库数据库删除查看数据库进入数据库查看所在的数据库修改数据库显示创建语句查看连接情况 表的操作创建表查看数据库所有的表查看表的详细信息查看创建表时的详细信息删除表修改表名向表中插入数据在表结构中新增一列对表结构数据的修改删除表…...

人工智能行业岗位一览

人工智能行业的岗位薪资高、待遇好、涨薪快已经是公开的事实,那么在人工智能行业中具体有哪些职业岗位呢?对于普通人来说,想要入行人工智能又有哪些机会呢? 下面是人工智能领域中的一部分职业岗位,随着技术的不断发展&…...

《Linux运维实战:Docker基础总结》

一、简介 1、docker的基本结构是什么,包含哪些组件? docker的基本机构是c/s模式,即客户端/服务端模式。 由docker客户端和docker守护进程组成。docker客户端通过命令行或其它工具使用docker sdk与docker守护进程通信,发送容器管理…...

Clash 意外退出后 chrome / google 谷歌 浏览器无法连接互联网

解决方案: 以管理员模式打开命令行,输入:netsh winsock reset ,然后重启电脑 如果还不行的话, 在 chromevs中选中 设置>隐私和安全>安全>使用安全 dns> 使用您当前的服务提供商 即可...

89 | Python人工智能篇 —— 深度学习算法 Keras 实现 MNIST分类

本教程将带您深入探索Keras,一个开源的深度学习框架,用于构建人工神经网络模型。我们将一步步引导您掌握Keras的核心概念和基本用法,学习如何构建和训练深度学习模型,以及如何将其应用于实际问题中。 文章目录 Keras 构建实际mnist图像分类案例.1. 介绍2. 环境搭建3. 数据准…...

每天一道leetcode:剑指 Offer 32 - III. 从上到下打印二叉树 III(中等广度优先遍历)

今日份题目: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 示例 给定二叉树: [3,9,20,null,null,15,7…...

day10 快速排序 方法重载 和 方法递推

方法重载 斐波拉契数列问题 使用重载思想解决 public static int method(int n){if (n 2 ){return 1 ;}return (n-1)*2method(n-1);}public static int f(int n){if (n 1){return 1;}if (n 2){return 2;}return f(n-1)f(n-2);} 快速排序 思维很简单,类似二…...

Qt 6. 其他类调用Ui中的控件

1. 把主类指针this传给其他类,tcpClientSocket new TcpClient(this); //ex2.cpp #include "ex2.h" #include "ui_ex2.h"Ex2::Ex2(QWidget *parent): QDialog(parent), ui(new Ui::Ex2) {ui->setupUi(this);tcpClientSocket new TcpClient…...

PHP 的不同版本(src 版、nts 版和 win 版)之间的区别和共同点。

在下载php时会有很多版本供我们选择,PHP 的不同版本(src 版、nts 版和 win 版)之间的区别又是什么呢。 src 版本:src 版本指的是 PHP 的源代码版本,您需要自行编译并安装它。这个版本通常用于自定义编译、开发环境和高…...

3 vue的if语法

vue的if语法是相当于一个标签的属性来写进去的&#xff0c;比如说<h1 v-if“”>。要注意的是if语句里可以自动从数据层取值的&#xff0c;比如<h1 v-if"message">&#xff0c;这里就会自动把key为message的值取过来&#xff0c;而如果要传一个字符串&…...

python基础3——流程控制

文章目录 一、操作符1.1 比较操作符1.2 逻辑操作符1.3 成员操作符1.4 身份操作符 二、流程控制2.1 条件判断2.2 循环语句2.2.1 for循环2.2.2 while循环 2.3 continue与break语句2.4 文件操作函数 三、函数3.1 定义函数3.2 作用域3.3 闭包3.4 函数装饰器3.5 内建函数 一、操作符…...

kubernetes中最小组件——Pod

目录 一、Pod简介 二、Pod的使用方式 三、Pause——Pod中底层基础容器 四、为什么kubernetes这样设计Pod 五、Pod的分类 1.自主式Pod 2.控制器管理的Pod 3.静态Pod 六、Pod容器的分类 1. 基础容器&#xff08;infrastructure container&#xff09; 2. 初始化容器&am…...

C++ 友元

文章目录 前言一、什么是友元二、友元的特性三、示例代码总结 前言 在C编程中&#xff0c;友元&#xff08;friend&#xff09;是一种特殊的关系&#xff0c;允许一个类或函数访问另一个类中的私有成员。 一、什么是友元 1.友元 的定义&#xff1a; 友元在C中可以被用于类和…...

Vulkan 绘制显示设计

背景 众所周知&#xff0c;Vulkan是个跨平台的图形渲染API&#xff0c;为了友好地支持跨平台&#xff0c;Vulkan自然也抽象出了很多接口层去对接各个操作系统&#xff0c;抹平系统间的差异&#xff0c;Swap Chains即为WSI。 其本质上是一种图像队列&#xff0c;此队列会按顺序…...

Linux性能分析工具介绍(一)--cpu及功耗相关工具介绍

目录 一、引言 二、CPU及功耗分析工具介绍 ------>2.1、cpuinfo ------------>2.1.1、cpuid指令 ------>2.2、lscpu ------>2.3、turbostat ------>2.4、rdmsr ------>2.5、mpstat ------>2.6、/proc/stat ------>2.7、powertop ----------…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...