基于Docker的软件环境部署脚本,持续更新~

news2024/11/16 5:43:02

在这里插入图片描述

使用时Ctrl+F搜索你想要的环境,如果没有你想要的环境,可以评论留言,会尽力补充。

本文提供的部署脚本默认参数仅适合开发测试,请根据实际情况调节参数。

数据库

MySQL

version: '3.9'
services:
  mysql:
    image: 'mysql:8.0.35'
    container_name: mysql-server
    restart: always
    command: '--default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci'
    environment:
      - MYSQL_ROOT_PASSWORD=lY4iQ}8":zK5
    ports:
      - "3306:3306"
    volumes:
      - 'mysql_data:/var/lib/mysql'
    deploy:
      resources:
        limits:
          memory: 512M
        reservations:
          memory: 256M

volumes:
  mysql_data:

PostgreSQL (PGSQL)

version: '3.9'
services:
  postgres:
    image: 'postgres:14'
    container_name: postgresql
    restart: always
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=etRu)7E3!#O8
    ports:
      - "5432:5432"
    volumes:
      - 'postgres_data:/var/lib/postgresql/data'
    deploy:
      resources:
        limits:
          memory: 512M
          
volumes:
  postgres_data:

SQL Server (MSSQL)

微软官方镜像源

version: '3.9'
services:
  mssql:
    image: 'mcr.microsoft.com/mssql/server:2022-latest'
    restart: always
    ports:
      - '1433:1433'
    environment:
      - MSSQL_SA_PASSWORD=Zu.d8>;8IJ7l
      - ACCEPT_EULA=Y
    volumes:
      - 'mssql_data:/var/opt/mssql/data'
    deploy:
      resources:
        limits:
          memory: 2048M

volumes:
  mssql_data:

Redis

简易配置

# redis.conf
# 设置最大使用内存为 512MB (默认为全部可用物理内存)
maxmemory 536870912
# 使用 Unix Domain Socket,比 TCP/IP 更快
unixsocket /tmp/redis.sock
# 设置 Redis 服务器监听端口号
port 6379
# 设置 Redis 所使用的数据库数量,默认为 16 个
databases 16
# 不限制访问来源
bind 0.0.0.0
# 设置 Redis 密码
requirepass 8*%u3Td#oV!yD9L7

docker-compose

version: '3.9'
services:
  redis:
    command: 'redis-server /etc/redis/redis.conf'
    image: 'redis:7.2.3-alpine'
    container_name: redis
    volumes:
      - 'redis_data:/data/redis'
      - './conf/redis.conf:/etc/redis/redis.conf'
    ports:
      - '6379:6379'
    restart: always
    tty: true
    stdin_open: true
    deploy:
      resources:
        limits:
          memory: 512M

volumes:
  redis_data:

Elasticsearch (es)

配置文件

# elasticsearch.yml
cluster.name: es
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300

docker-compose

version: '3.9'
services:
  elasticsearch:
    image: 'elasticsearch:7.17.3'
    container_name: elasticsearch
    ulimits:
      nproc: 65535
      nofile:
        soft: 65535
        hard: 65535
    cap_add:
      - IPC_LOCK
    mem_limit: 1g
    environment:
      - discovery.type=single-node
    volumes:
      - 'es_data:/usr/share/elasticsearch/data'
      - './config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml'
    ports:
      - '9200:9200'
      - '9300:9300'
	deploy:
      resources:
        limits:
          memory: 512M
          
volumes:
  es_data:

消息队列

RabbitMQ

version: '3'
services:
  mq:
    image: 'rabbitmq:3.9-management'
    container_name: rabbitmq
    hostname: rabbitmq
    ports:
      - "5672:5672"
      - "15672:15672"
    volumes:
      - 'rabbitmq_data:/var/lib/rabbitmq'
    environment:
      - RABBITMQ_DEFAULT_USER=guest
      - RABBITMQ_DEFAULT_PASS=guest
	deploy:
      resources:
        limits:
          memory: 512M

volumes:
  rabbitmq_data:

RocketMQ

配置文件

version: '3.9'
services:
  # https://hub.docker.com/r/xuchengen/rocketmq
  # 注意修改项;
  # 01:data/rocketmq/conf/broker.conf 添加 brokerIP1=127.0.0.1
  # 02:data/console/config/application.properties server.port=9009 - 如果8080端口被占用,可以修改或者添加映射端口
  rocketmq:
    image: livinphp/rocketmq:5.1.0
    container_name: rocketmq
    ports:
      - 8080:8080
      - 9876:9876
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - ./data:/home/app/data
    environment:
      TZ: "Asia/Shanghai"
      NAMESRV_ADDR: "rocketmq:9876"

对象存储

MinIO

version: '3.9'
services:
  minio:
    command: 'server /data --console-address ":9001"'
    restart: always
    image: quay.io/minio/minio
    container_name: minio
    environment:
      - MINIO_ROOT_USER=minio
      - MINIO_ROOT_PASSWORD=miniopwd
    volumes:
      - 'minio_data:/data'
    ports:
      - '9001:9001'
      - '9000:9000'
    deploy:
      resources:
        limits:
          memory: 512M

volumes:
  minio_data:

Spring Cloud Alibaba

Nacos

version: '3.9'
services:
  nacos:
    image: nacos/nacos-server:v2.2.0-slim
    container_name: nacos
    ports:
      - "8848:8848"
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=standalone
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=mysql
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_DB_NAME=nacos_config
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=password
	deploy:
      resources:
        limits:
		  memory: 1024M
    depends_on:
      - mysql

  mysql:
    image: mysql:5.7
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=nacos_config
    volumes:
      - 'mysql_data:/var/lib/mysql'
	deploy:
      resources:
        limits:
		  memory: 256M

volumes:
  mysql_data:

使用自建数据库将mysql模块删除,并将Nacos数据库连接信息替换成目标数据库说明:

说明

  • 使用 nacos/nacos-server:v2.2.0-slim 镜像启动 Nacos 服务,v2.2.0-slim可替换为指定版本。
  • 映射容器的 8848 端口到主机的 8848 端口,使其可通过 localhost:8848 访问。
  • 设置了多个环境变量来连接 MySQL 数据库:
    • MODE=standalone:指定 Nacos 以单机模式运行。
    • SPRING_DATASOURCE_PLATFORM=mysql:告诉 Nacos 使用 MySQL 作为数据源。
    • MYSQL_SERVICE_HOST=mysql:指定 MySQL 服务的主机名,这里与 MySQL 服务的容器名称相对应。
    • MYSQL_SERVICE_PORT=3306:MySQL 服务的端口号。
    • MYSQL_SERVICE_DB_NAME=nacos_config:用于存储 Nacos 数据的数据库名称。
    • MYSQL_SERVICE_USER=rootMYSQL_SERVICE_PASSWORD=password:MySQL 的用户名和密码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1339332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在 iPhone 手机上恢复数据的 7 个有效应用程序

我们的生活离不开 iPhone。无论我们走到哪里,他们都陪伴着我们,让我们保持联系、拍摄照片和视频,并提供娱乐。与此同时,您将计算机安全地放在办公桌上,不受天气影响,也不受伤害。如果您要在任何地方丢失重要…

Jmeter 性能 —— 监控服务器!

Jmeter 监控Linux需要三个文件 JMeterPlugins-Extras.jar (包:JMeterPlugins-Extras-1.4.0.zip)JMeterPlugins-Standard.jar (包:JMeterPlugins-Standard-1.4.0.zip)ServerAgent-2.2.3.zip 1、Jemter 安装插件 在插件管理中心的搜索Servers Performa…

cpp_07_类型转换构造_析构函数_深拷贝_静态成员

1 类型转换构造函数 1.1 why? 基本类型之间的转换,编译器内置转换规则:int -> double 类类型之间的转换,编译器不知道转换规则,需要用户提供:Cat -> Dog // consconv_why.cpp 为什么需要自定义转换 #includ…

多出口-热备---实验

多出口-热备 拓扑 需求 1)增加出口路由器,实现路由器冗余,实现出口设备热备份 配置步骤 1)SW5和SW6创建vlan25 vlan26 2) SW5配置vlanif 25的IP地址 3)S 4)统一规划设计一下MSTP 5)R2配…

Java中利用Redis,ZooKeeper,数据库等实现分布式锁(遥遥领先)

1. 分布式锁 1.1 什么是分布式锁 在我们进行单机应用开发涉及并发同步的时候,我们往往采用synchronized或者ReentrantLock的方式来解决多线程间的代码同步问题。但是当我们的应用是在分布式集群工作的情况下,那么就需要一种更加高级的锁机制&#xff0…

奇富科技跻身国际AI学术顶级会议ICASSP 2024,AI智能感知能力迈入新纪元

近日,2024年IEEE声学、语音与信号处理国际会议ICASSP 2024(2024 IEEE International Conference on Acoustics, Speech, and Signal Processing)宣布录用奇富科技关于语音情感计算的最新研究成果论文“MS-SENet: Enhancing Speech Emotion Re…

java设计模式学习之【状态模式】

文章目录 引言状态模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用状态示例代码地址 引言 设想你正在使用一个在线视频播放器观看电影。随着你的互动,播放器可能处于不同的状态:播放、暂停、缓冲或结束。每个状态下,播放…

IDEA安装教程及使用

一、IDEA简介 ​ IDEA全称IntelliJ IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。 集成环境:把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。 二、ID…

数据分析之词云图绘制

试验任务概述:如下为所给CSDN博客信息表,分别汇总了ai, algo, big-data, blockchain, hardware, math, miniprog等7个标签的博客。对CSDN不同领域标签类别的博客内容进行词频统计,绘制词频统计图,并根据词频统计的结果绘制词云图。…

使用streampark进行flink on k8s LoadBalancer配置域名访问flink ui

在使用yarn部署flink任务时,yarn自动代理了flink web ui,通过yarn的地址即可访问任务web页面。 k8s模式下想访问flink web ui,要么使用NodePort的方式启动任务,然后通过k8s主机IPNodePort端口来进行访问。但是这种方法&#xff0…

C++构建简单静态库实例(cmakelist)

一、开发实例 通过cmake构建静态开发实例如下: 1.1 代码目录 代码目录结构如下: 1.2 代码内容 1.2.1 CMakeLists.txt # CMake 最低版本要求 cmake_minimum_required(VERSION 3.10)# 项目名称 project(mylib)# 添加源文件 set(SOURCE_FILESsrc/mylib

分布式数据库 GaiaDB-X 通过 GB18030-2022《信息技术 中文编码字符集》最高级别认证

近日,百度智能云分布式数据库GaiaDB-X通过 GB18030-2022《信息技术 中文编码字符集》强制性国家标准测试,达到最高实现级别(3级)。 据了解,GB18030-2022《信息技术 中文编码字符集》是中文信息技术领域最重要的基础性标…

在 Unity 中获取 Object 对象的编辑器对象

有这个需求的原因是,在编辑器的 Inspector 逻辑中,写了许多生成逻辑。 现在不想挨个在 Inspector 上都点一遍按钮,所以就需要能获取到它们的编辑器对象。 发现可以借助官方的 UnityEditor.Editor.CreateEditor 方法达到目的,如下…

【IoT网络层】STM32 + ESP8266 +MQTT + 阿里云物联网平台 |开源,附资料|

目标:实现STM32连接阿里云物联网平台发送数据同时接收数据,IOT studio界面显示数据。具体来说:使用ESP8266 ESP-01来连接网络,获取设备数据发送到阿里云物联网平台并显示且oled显示屏当前的设备数据,通过IOT studio界面…

OpenHarmony城市技术论坛武汉站:探索大模型时代的终端操作系统创新

2023年12月23日下午,OpenHarmony城市技术论坛(以下简称“技术论坛”)——第6期(武汉站)于华中科技大学梧桐语问学中心明德报告厅圆满举办。本次技术论坛聚焦“大模型时代的系统软件”,旨在探索AI大模型在终端操作系统领域的创新趋势和挑战。论坛从“终端操作系统十大技术挑战”…

亿赛通电子文档安全管理系统 linkfilterservice 未授权漏洞

产品简介 亿赛通电子文档安全管理系统,(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资…

php 之 redisk 扩展问题

系统: ARM V10 server (1229) 软件: php、phpdevel redis5.1.0RC1 redis5.1.0RC1.tgz phpredis 编译: 解压进入目录内: # phpize # ./configure withphpconfig/usr/bin/phpconfig # make # make ins…

【1】Docker详解与部署微服务实战

Docker 详解 Docker 简介 Docker 是一个开源的容器化平台,可以帮助开发者将应用程序和其依赖的环境打包成一个可移植、可部署的容器。Docker 的主要目标是通过容器化技术实现应用程序的快速部署、可移植性和可扩展性,从而简化应用程序的开发、测试和部…

机器学习——决策树(三)

【说明】文章内容来自《机器学习——基于sklearn》,用于学习记录。若有争议联系删除。 1、案例一 决策树用于是否赖床问题。 采用决策树进行分类,要经过数据采集、特征向量化、模型训练和决策树可视化4个步骤。 赖床数据链接:https://pan…

SLAM算法与工程实践——相机篇:RealSense D435使用(2)

SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接,本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址: SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践…