找回密码
 立即注册
首页 业界区 业界 Docker Compose V2 安装常用数据库MySQL+Mongo

Docker Compose V2 安装常用数据库MySQL+Mongo

晚能 昨天 04:01
前言

书接上篇:Docker V24 及 Docker Compose V2 的安装及使用
本篇操作都在 centos8 虚拟机 devops01 中进行,并都归属网络:devopsnetwork
主要增加对容器中 数据文件,日志,配置,网络,时区,端口映射,密码 的配置,更贴合生产实际使用
Docker Compose 安装 MySQL v5.7

目录 /app/mysql 中创建 compose.yml 并运行

  • 指定 mysql 版本 5.7
  • 指定网络:devopsnetwork
  • 指定时区:Asia/Shanghai

    • 不设置默认是GMT时间,会比北京时间少8h,直接的影响就是 NOW() 函数会有差异
    • 1.png


  • 指定 root 密码:devops666
  • 挂载卷:./data ./logs,无需手动创建
  • 挂载配置文件: 配置文件根据情况挂载,需要手动创建 conf/my.conf ,以下为示例配置

      1. [mysqld]
      2. #必须保证在mysql集群中,该字段唯一
      3. server_id=1
      4. #指定归档日志的存储文件
      5. log-bin=master-bin
      6. log-bin-index=master-bin.index
      7. #指定忽略的数据库
      8. binlog-ignore-db=mysql
      9. #指定时区
      10. default-time-zone='Asia/Shanghai'
      11. #可以通过增加”replicate-do-db” 指定需要复制的数据库,
      12. #如果不指定则是所有的数据。如果需要指定多个数据库,只需要增加多个”replicate-do-db” 即可。
      13. #replicate-do-db
      14. #设置这个最大连接数值
      15. max_connections=1024
      复制代码

  • 暴露端口:3306
  • 启动 mysql 容器: docker compose up -d

      1. version: '3.1'
      2. services:
      3.   mysql:
      4.     container_name: db_mysql_5_7
      5.     image: mysql:5.7
      6.     restart: always
      7.     environment:
      8.       - TZ=Asia/Shanghai
      9.       - MYSQL_ROOT_PASSWORD=devops666
      10.     volumes:
      11.       - ./data:/var/lib/mysql
      12.       - ./logs:/var/log/mysql
      13.       # 指定配置文件,需要手动创建
      14.       # - ./conf/my.cnf:/etc/mysql/my.cnf
      15.     ports:
      16.       - "3306:3306"
      17.     networks:
      18.       - devopsnetwork
      19. networks:
      20.   devopsnetwork:
      21.     external: true
      复制代码

  • 运行示例

    • 2.png


  • 若需要使用 mysql8.0 ,可使用下面配置,根据需要设置身份验证插件

      1. version: '3.1'
      2. services:
      3.   mysql:
      4.     container_name: db_mysql_8
      5.     image: mysql:8.0
      6.     restart: always
      7.     # MySQL 8.0 默认使用 caching_sha2_password 身份验证插件,而不是 mysql_native_password 插件。在生产环境中,我们应该遵循官方建议,使用 caching_sha2_password 插件提供更强大的安全性
      8.     # command: --default-authentication-plugin=mysql_native_password
      9.     environment:
      10.       MYSQL_ROOT_PASSWORD: devops666
      11.     volumes:
      12.       - ./data:/var/lib/mysql
      13.     ports:
      14.       - "3306:3306"
      15.     networks:
      16.       - devopsnetwork
      17. networks:
      18.   devopsnetwork:
      19.     external: true
      复制代码

  • 参考 docker-library/mysql
Docker Compose 安装 MongoDB  v4.4

目录 /app/mongo 中创建 compose.yml 并运行

  • 指定 mongo 版本 4.4
  • 指定网络:devopsnetwork
  • 指定时区:Asia/Shanghai
  • 指定账号密码:root devops666
  • 挂载卷:./data 即:/app/mongo/data,无需手动创建
  • 挂载配置文件:./config/mongo.conf 需要手动创建

      1. net:
      2.   bindIpAll: true
      3. security:
      4.   authorization: enabled
      复制代码

  • 暴露端口:27017
  • 运行 compose.yml:docker compose up -d

      1. version: '3.1'
      2. services:
      3.   mongo:
      4.     container_name: mongo_4_4
      5.     image: mongo:4.4.0
      6.     restart: always
      7.     networks:
      8.       - devopsnetwork
      9.     environment:
      10.       - TZ=Asia/Shanghai
      11.       - MONGO_INITDB_ROOT_USERNAME=root
      12.       - MONGO_INITDB_ROOT_PASSWORD=devops666
      13.     command: mongod --config /etc/mongo/mongod.conf
      14.     volumes:
      15.       - ./data:/data/db
      16.       - ./logs:/data/log
      17.       - ./config/mongo.conf:/etc/mongo/mongod.conf
      18.     ports:
      19.       - "27017:27017"
      20. networks:
      21.   devopsnetwork:
      22.     external: true
      复制代码

  • 运行示例

    • 3.png


  • 参考 docker-library/mongo
后语


  • 安装&记录耗时:5 小时
  • 后面还会补充 clickhouse 和一个 web 管理工具的使用
  • 创作不易,且行且珍惜!!!

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册