Docker Compose V2 安裝常用數據庫MySQL+Mongo

前言

書接上篇: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 管理工具的使用
  • 創作不易,且行且珍惜!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章