第240311期 – docker快速部署演示环境

第240311期 - docker快速部署演示环境
docker快速部署一套中间件环境,手把手教程!!

最近有个交付的同学找到我,最近有个外部实施项目,想要在本地部署一套演示环境,但是中间件部署遇到了一些问题。

了解了一下,他目前还是采用常规的传统方式部署,环境问题就搞了很久。

于是根据他的需要,给他整了一个一键部署的脚本,顺带整理了这篇文章,和大家分享。

因为这个需求的特殊,要求快速搭建,而且非生产环境,所以中间件决定采用docker部署,而又是多个中间件需要部署,所以直接整了一个docker-compose方式

下面为需要部署的中间件及版本

服务名称英文名端口号版本号服务类别
数据库mysql33068中间件
缓存redis63796.2中间件
配置服务中心nacos88482.0.2中间件
消息队列rabbitmq56723.8.4中间件

下面是具体的compose配置文件,有几点需要注意

1.所有中间件都是开启认证的,示例为弱密码

2.采用支持hostname方式,方便调用

3.数据均会在本地持久化

4.会配置统一的网络区域

具体配置文件

redis

version: '3'
services:
  redis:
    image: redis:6.2
    container_name: yyredis
    restart: always
    environment:
      TZ: Asia/Shanghai
    ports:
      - "6379:6379"
    command: redis-server --requirepass 123456
    networks:
      - yynetwork
    volumes:
      - ./redisdata:/data # 持久化   
networks:
  yynetwork:      

nacos

nacos 需要依赖mysql环境,如果采用官方默认方式

会以内嵌的derby库作为数据存储,不是很建议!!

version: '3'
services:
  nacos:
    image: nacos/nacos-server:v2.2.0
    container_name: yynacos
    depends_on:
      - mysql
    ports:
      - "8848:8848"
      - "9848:9848"
    restart: always
    volumes:
      - ./nacosdata:/home/nacos/data
    environment:
      - MODE=standalone # 单节点模式启动
      - PREFER_HOST_MODE=hostname # 支持 hostname
      - TZ=Asia/Shanghai # 控制时区
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=mysql
      - MYSQL_SERVICE_DB_NAME=nacos
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true      
    networks:
      - yynetwork # 指定网络
networks:
  yynetwork:    

rabbitmq

version: '3'
services:
  rabbitmq:
    image: rabbitmq:3.8.4-management # 支持管理面板的消息队列
    container_name: yyrabbitmq
    environment:
      RABBITMQ_DEFAULT_USER: guest
      RABBITMQ_DEFAULT_PASS: guest
    ports:
      - "5672:5672"
      - "15672:15672" # RabbitMQ Dashboard 端口
    volumes:
      - ./rabbitmqdata:/var/lib/rabbitmq # 持久化
    networks:
      - yynetwork
networks:
  yynetwork:

mysql

version: '3'
services:
  mysql:
    image: mysql:8.0
    container_name: yymysql
    environment:
      PREFER_HOST_MODE: hostname
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: nacos
      TZ: Asia/Shanghai
    volumes:
      - ./data:/var/lib/mysql # 数据缓存到本地
      - ./init:/docker-entrypoint-initdb.d # 数据初始化脚本目录
    ports:
      - 3306:3306
    restart: always
    networks:
      - yynetwork # 指定网络
networks:
  yynetwork:      

整体compose配置文件

终端启动

docker-compose -f .hlwyy.yaml up -d

第240311期 - docker快速部署演示环境

#cat hlwyy.yaml

version: '3'
services:
  mysql:
    image: mysql:8.0
    container_name: yymysql
    environment:
      PREFER_HOST_MODE: hostname
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: nacos
      TZ: Asia/Shanghai
    volumes:
      - ./data:/var/lib/mysql # 数据缓存到本地
      - ./init:/docker-entrypoint-initdb.d # 数据初始化脚本目录
    ports:
      - 3306:3306
    restart: always
    networks:
      - yynetwork # 指定网络
  nacos:
    image: nacos/nacos-server:v2.2.0
    container_name: yynacos
    depends_on:
      - mysql
    ports:
      - "8848:8848"
      - "9848:9848"
    restart: always
    volumes:
      - ./nacosdata:/home/nacos/data
    environment:
      - MODE=standalone # 单节点模式启动
      - PREFER_HOST_MODE=hostname # 支持 hostname
      - TZ=Asia/Shanghai # 控制时区
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_SERVICE_HOST=mysql
      - MYSQL_SERVICE_DB_NAME=nacos
      - MYSQL_SERVICE_PORT=3306
      - MYSQL_SERVICE_USER=root
      - MYSQL_SERVICE_PASSWORD=123456
      - MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true      
    networks:
      - yynetwork # 指定网络
  rabbitmq:
    image: rabbitmq:3.8.4-management # 支持管理面板的消息队列
    container_name: yyrabbitmq
    environment:
      RABBITMQ_DEFAULT_USER: guest
      RABBITMQ_DEFAULT_PASS: guest
    ports:
      - "5672:5672"
      - "15672:15672" # RabbitMQ Dashboard 端口
    volumes:
      - ./rabbitmqdata:/var/lib/rabbitmq # 持久化
    networks:
      - yynetwork
  redis:
    image: redis:6.2
    container_name: yyredis
    restart: always
    environment:
      TZ: Asia/Shanghai
    ports:
      - "6379:6379"
    command: redis-server --requirepass 123456
    networks:
      - yynetwork
    volumes:
      - ./redisdata:/data # 持久化      
networks:
  yynetwork: 

部分工具推荐

docker desktop

第240311期 - docker快速部署演示环境

dockge

如果是linux环境,可以部署dockge,是一个不错的管理docker-compose环境的工具

第240311期 - docker快速部署演示环境


© 版权声明

相关文章