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

docker,compose,v2,安装,常用,数据库,mysql,mongo · 浏览次数 : 3

小编点评

**Docker V24 及 Docker Compose V2 的安装及使用教程** **一、安装 Docker 和 Docker Compose** 1. 在您的 CentOS 8 虚拟机 devops01 中安装 Docker 和 Docker Compose。您可以使用以下命令: ``` sudo yum install docker docker-compose ``` 2. 启动 Docker 和 Docker Compose 服务: ``` docker-compose up -d ``` **二、配置 Docker Compose** 1. 创建一个名为 `compose.yml` 的文件,存储您的 Compose 配置。以下是一个示例配置文件: ```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 mongo: container_name: mongo_4_4 image: mongo:4.4.0 restart: always 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" ``` 2. 在 `docker-compose.yml` 文件中,设置您的 MySQL 和 MongoDB 服务。 **三、运行容器** 1. 使用 `docker-compose up -d` 命令运行您的容器。 2. 访问您的 MySQL 和 MongoDB 服务,使用您的账号和密码。 **四、修改配置文件** 您可以根据您的需求修改 `compose.yml` 文件。例如,您可以更改 MySQL 和 MongoDB 服务的镜像、端口、环境变量等。 **五、使用多个数据库** 您可以使用 `replicate-do-db`配置将多个数据库连接到同一容器中。例如,您可以使用以下配置将所有数据保存在 `./data` 目录中: ```yaml replicate-do-db: max_connections: 1024 expose: 3306 ``` **六、启动多个容器** 您可以使用 `docker-compose up -d` 命令启动多个容器。 **七、使用特定版本** 您可以使用 `version:` 选项指定 Docker 和 Docker Compose 的版本。例如,以下命令使用 Docker V24 和 Docker Compose V2: ``` docker-compose up -d -v=3.1:3.1 ```

正文

前言

书接上篇: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() 函数会有差异
  • 指定 root 密码:devops666

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

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

    • [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

    • 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 ,可使用下面配置,根据需要设置身份验证插件

    • 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 需要手动创建

    • net:
        bindIpAll: true
      
      security:
        authorization: enabled
      
  • 暴露端口:27017

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

    • 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 管理工具的使用
  • 创作不易,且行且珍惜!!!

与Docker Compose V2 安装常用数据库MySQL+Mongo相似的内容:

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

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

DBeaver Ultimate 22.1.0 连接数据库(MySQL+Mongo+Clickhouse)

前言 继续书接上文 Docker Compose V2 安装常用数据库MySQL+Mongo,部署安装好之后我本来是找了一个web端的在线连接数据库的工具,但是使用过程中并不丝滑,最终还是选择了使用 DBeaver ,然后发现 mongo 还需要许可,又折腾整理了半下午,终于大功告成。 DBeave

Docker Compose V2 安装 ClickHouse v20.6.8.5 经验分享

前言 ClickHouse 是一款开源的分布式列式数据库管理系统,专门设计用于高性能的大数据分析和查询。 目前项目中用到的一个场景是将mongo的数据同步到clickhouse,使用clickhouse做报表,后续也将分享同步和使用方案 使用 Docker Compose 部署单机版,小项目和自己测

Docker V24 及 Docker Compose V2 的安装及使用

Docker 是一款流行的开源容器化平台,使用 Docker 可以有效地隔离应用程序和系统环境,使得应用程序在不同的环境中具有相同的行为 Docker Compose 是一个用于定义和管理多个容器工具

docker-compose创建haproxy教程

本文主要讲解通过docker-compose创建haproxy并进行代理 一、haproxy简介 HAProxy是一款基于事件驱动、单进程模型设计的四层与七层负载均衡器,它能够在TCP/UDP层面以及HTTP(S)等应用层协议上实现高效的流量分发。HAProxy不仅适用于Web服务器负载均衡,还能应

关于docker-compose up -d 出现超时情况处理

由于要搭建一个ctf平台,用docker一键搭建是出现超时情况 用了很多办法,换源,等之类的一样没办法,似乎它就是只能用官方那个一样很怪。 只能用一种笨办法来处理了,一个个pull。 打个比如: 打开相对应docker-compose.yml文件 可以看到image就是需要去下载的。那么此时你就可以

[转帖]docker-compose完全清除

https://www.cnblogs.com/gelandesprung/p/12112420.html#:~:text=docker-compose%E5%AE%8C%E5%85%A8%E6%B8%85%E9%99%A4%20%E9%80%9A%E8%BF%87yml%E6%96%87%E4%B

[转帖]Docker-Compose 自动创建的网桥与局域网冲突解决方案

https://zhuanlan.zhihu.com/p/379305319 Docker-Compose 自动创建的网桥与局域网冲突解决方案 当我使用docker-compose的方式部署内网的harbor时。它自动创建了一个bridge网桥,与内网的一个网段(172.18.0.1/16)发生冲突

docker-compose快速部署elasticsearch-8.x集群+kibana

借助docker-compose,可以简单的完成elasticsearch8.x版本集群+kibana部署

Centos安装Docker、Docker-compose

Docker的搭建 Docker版本要求 要求 CentOs7 系统的内核版本高于 3.10,可通过如下指令查看版本 uname -r 更新yum 需先安装必要的软件包,yum-utils、device-mapper-persistent-data、lvm2 yum-utils:提供一个yum-co