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

前言

书接上篇:Docker V24 及 Docker Compose V2 的安装及使用

本篇操作都在 centos8 虚拟机 devops01 中进行,并都归属网络:devopsnetwork

主要增加对容器中 数据文件,日志,配置,网络,时区,端口映射,密码 的配置,更贴合生产实际使用

  • 作者:易墨
  • 发布时间:2023.10.03

Docker Compose 安装 MySQL v5.7

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

  • 指定 mysql 版本 5.7

  • 指定网络:devopsnetwork

  • 指定时区:Asia/Shanghai

    • 不设置默认是GMT时间,会比北京时间少8h,直接的影响就是 NOW() 函数会有差异
  • 指定 root 密码:devops666

  • 挂载卷:./data ./logs,无需手动创建

  • 挂载配置文件: 配置文件根据情况挂载,需要手动创建 conf/my.conf ,以下为示例配置

    ini 复制代码
    [mysqld]
    #必须保证在mysql集群中,该字段唯一
    server_id=1
    #指定归档日志的存储文件
    log-bin=master-bin
    log-bin-index=master-bin.index
    #指定忽略的数据库
    binlog-ignore-db=mysql
    #指定时区
    default-time-zone='Asia/Shanghai'
    #可以通过增加"replicate-do-db" 指定需要复制的数据库,
    #如果不指定则是所有的数据。如果需要指定多个数据库,只需要增加多个"replicate-do-db" 即可。
    #replicate-do-db
    
    #设置这个最大连接数值
    max_connections=1024
  • 暴露端口:3306

  • 启动 mysql 容器: docker compose up -d

    yaml 复制代码
    version: '3.1'
    services:
      mysql:
        container_name: db_mysql_5_7
        image: mysql:5.7
        restart: always
        environment:
          - TZ=Asia/Shanghai
          - MYSQL_ROOT_PASSWORD=devops666
        volumes:
          - ./data:/var/lib/mysql
          - ./logs:/var/log/mysql
          # 指定配置文件,需要手动创建
          # - ./conf/my.cnf:/etc/mysql/my.cnf
        ports:
          - "3306:3306"
        networks:
          - devopsnetwork
    
    networks:
      devopsnetwork:
        external: true
  • 运行示例

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

    yaml 复制代码
    version: '3.1'
    services:
      mysql:
        container_name: db_mysql_8
        image: mysql:8.0
        restart: always
        # MySQL 8.0 默认使用 caching_sha2_password 身份验证插件,而不是 mysql_native_password 插件。在生产环境中,我们应该遵循官方建议,使用 caching_sha2_password 插件提供更强大的安全性
        # command: --default-authentication-plugin=mysql_native_password
        environment:
          MYSQL_ROOT_PASSWORD: devops666
        volumes:
          - ./data:/var/lib/mysql
        ports:
          - "3306:3306"
        networks:
          - devopsnetwork
    
    networks:
      devopsnetwork:
        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 需要手动创建

    yaml 复制代码
    net:
      bindIpAll: true
    
    security:
      authorization: enabled
  • 暴露端口:27017

  • 运行 compose.yml:docker compose up -d

    yaml 复制代码
    version: '3.1'
    services:
      mongo:
        container_name: mongo_4_4
        image: mongo:4.4.0
        restart: always
        networks:
          - devopsnetwork
        environment:
          - TZ=Asia/Shanghai
          - MONGO_INITDB_ROOT_USERNAME=root
          - MONGO_INITDB_ROOT_PASSWORD=devops666
        command: mongod --config /etc/mongo/mongod.conf
        volumes:
          - ./data:/data/db
          - ./logs:/data/log
          - ./config/mongo.conf:/etc/mongo/mongod.conf
        ports:
          - "27017:27017"
    
    networks:
      devopsnetwork:
        external: true
  • 运行示例

  • 参考 docker-library/mongo

后语

  • 安装&记录耗时:5 小时
  • 后面还会补充 clickhouse 和一个 web 管理工具的使用
  • 创作不易,且行且珍惜!!!
相关推荐
睡不醒男孩0308238 分钟前
第七篇:揭秘 PostgreSQL 数据库内核级管控:CLup 深度架构设计与高可用底座技术白皮书
数据库·postgresql·clup
IT_陈寒16 分钟前
Redis持久化这个坑,我爬了一整天才出来
前端·人工智能·后端
无风听海16 分钟前
多租户系统中的 OIDC:Discovery 端点与联合登录的深度实践
后端·python·flask
cmes_love1 小时前
Level 2逐笔成交历史数据下载方法笔记
数据库·笔记·oracle
小小前端仔LC1 小时前
Node.js + LangChain + React:搭建个人知识库(六)- “吃什么”项目实战:从700+菜谱入库到Taro H5端JSON渲染
前端·后端
swordbob1 小时前
MySQL字符集陷阱:从Oracle迁移踩坑到utf8mb4强制规范
数据库·sql
程序员黑豆1 小时前
AI全栈开发之Java:怎么配置Java环境变量
前端·后端·ai编程
牛油果子哥q1 小时前
【C++ STL string 】C++ STL string 终极精讲:底层原理、内存机制、全套API、深浅拷贝、易错坑点与工程实战规范
数据库·c++
十五年专注C++开发1 小时前
MySql中各种功能用sql语句实现总结
数据库·sql·mysql
数据库小学妹2 小时前
AI时代数据库怎么选?多模融合、数据统一存储与选型实战指南
数据库·人工智能·经验分享·ai