MySQL、Redis、MongoDB使用docker compose安装

compose.yaml文件如下 

version: "3.9"
services:
  #指定服务名称mysql、redis
  mysql:
    image: mysql:5.7.30
    #指定容器名称
    container_name: mysql
    restart: always
    #指定服务运行的端口
    ports:
      - "3306:3306"
    #指定容器的环境变量
    environment:
      #数据库root密码的密码root
      - MYSQL_ROOT_PASSWORD=123456
      #创建的库
      - MYSQL_DATABASE=smart-bar-dev
      #允许多IP连接数据库
      - MYSQL_ROOT_HOST=%
    #挂载数据卷
    volumes:
      - ./mysql/data:/var/lib/mysql
      - ./mysql/conf:/etc/mysql
      - ./mysql/log:/var/log/mysql
  mysql8:
    image: mysql:8.0.32
    #指定容器名称
    container_name: mysql8
    restart: always
    #指定服务运行的端口
    ports:
      - "3307:3306"
    #指定容器的环境变量
    environment:
      # 时区上海
      TZ: Asia/Shanghai
      # root 密码
      MYSQL_ROOT_PASSWORD: 123456
      # 初始化数据库(后续的初始化sql会在这个库执行)
      MYSQL_DATABASE: nacos_config
      # 初始化用户(不能是root 会报错, 后续需要给新用户赋予权限)
      MYSQL_USER: nacos
      # 用户密码
      MYSQL_PASSWORD: nacos
      #允许多IP连接数据库
      MYSQL_ROOT_HOST: '%'
    #挂载数据卷
    volumes:
      - ./mysql8/data:/var/lib/mysql
      - ./mysql8/conf:/etc/mysql/conf.d
      - ./mysql8/log:/var/log/mysql
    command:
      # 将mysql8.0默认密码策略 修改为 原先 策略 (mysql8.0对其默认策略做了更改 会导致密码无法匹配)
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
  redis:
    #官方的Redis镜像image
    image: redis:6.2.5
    #指定容器名称
    container_name: redis
    restart: always
    # Redis密码root
    command: redis-server --requirepass 123456
    ports:
      - "6379:6379"
    #挂载数据卷
    #Redis 的密码需要自己在与容器共享的配置 redis.conf 中加入,即更改配置中 requirepass 为: requirepass yourpassword
    volumes:
      - ./redis/data:/data
  mongodb:
    #官方的mongodb镜像image
    image: mongo
    #指定容器名称
    container_name: mongodb
    restart: always
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=123456
    #restart: always
    ports:
      - "27017:27017"
    #挂载数据卷
    volumes:
      - ./mongodb/data:/data/db

容器启动

docker compose up -d

启动成功如下图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Docker是一种容器化解决方案,Docker Compose可以简化多个容器的管理和部署流程。Nacos是一个用于服务发现、配置管理和动态DNS服务的开源平台。Node.js是一个基于JavaScript的开源、跨平台的运行时环境,用于构建可扩展的网络应用程序。MongoDB是一个高性能、文档型NoSQL数据库,适用于处理大量的结构化和非结构化数据。MySQL是一个开源的关系型数据库管理系统,用于存储和管理结构化数据。Redis是一个基于内存的高性能键值存储系统,用于缓存和数据持久化。Seata是一个开源的分布式事务解决方案,用于保证分布式系统中的数据一致性。 通过Docker Compose,我们可以轻松地将这些不同的组件和服务以容器化的方式部署在一台或多台服务器上。我们可以使用Docker Compose的配置文件定义每个服务的镜像、端口映射、环境变量等设置。在这个场景中,我们可以将Nacos、Node.js、MongoDBMySQLRedis和Seata分别作为独立的服务进行定义。 使用Docker Compose可以简化部署过程,只需运行一个命令即可启动整个应用程序的容器群组。Docker会自动拉取和部署所需的镜像,启动容器,并通过网络连接各个服务。Nacos可以作为服务发现和配置中心,用于管理和注册各个服务的地址和配置信息。Node.js可以作为应用程序的后端逻辑进行开发,通过Nacos来发现和调用各个后端服务。MongoDB作为主要的数据存储,MySQLRedis可以作为辅助数据存储和缓存。Seata可以用于管理和控制分布式事务,确保数据一致性。 总之,使用Docker Compose可以方便地将Nacos、Node.js、MongoDBMySQLRedis和Seata等组件集成在一起,并通过容器化的方式进行部署。这样做可以极大地简化应用程序的开发和部署过程,并提供高度可扩展的架构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值