最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過(guò)Docker?Compose部署MySQL的詳細(xì)教程

 更新時(shí)間:2025年03月26日 15:51:46   作者:Kwan的解憂雜貨鋪  
Docker?Compose?作為?Docker?官方的容器編排工具,為?MySQL?數(shù)據(jù)庫(kù)部署帶來(lái)了顯著優(yōu)勢(shì),下面小編就來(lái)為大家詳細(xì)介紹一下具體的流程吧

一、Docker Compose 部署 MySQL 的優(yōu)勢(shì)

Docker Compose 作為 Docker 官方的容器編排工具,為 MySQL 數(shù)據(jù)庫(kù)部署帶來(lái)了顯著優(yōu)勢(shì):

聲明式配置管理:所有服務(wù)參數(shù)通過(guò) YAML 文件集中定義,避免了復(fù)雜的命令行參數(shù)

多服務(wù)協(xié)同:輕松實(shí)現(xiàn) MySQL 與 Web 應(yīng)用、緩存等服務(wù)的集成部署

環(huán)境一致性:開發(fā)、測(cè)試、生產(chǎn)環(huán)境使用相同配置,消除環(huán)境差異問(wèn)題

快速重建:一鍵完成服務(wù)停止、重建和啟動(dòng),簡(jiǎn)化維護(hù)流程

版本控制友好:docker-compose.yml 文件可納入 Git 等版本控制系統(tǒng)管理

二、環(huán)境準(zhǔn)備與基礎(chǔ)配置

2.1 項(xiàng)目目錄結(jié)構(gòu)

推薦的標(biāo)準(zhǔn)目錄布局:

mysql-project/
├── docker-compose.yml
├── config/
│   └── my.cnf
├── data/
│   └── mysql/
├── initdb/
│   └── init.sql
└── .env

2.2 基礎(chǔ) docker-compose.yml

version: "3.8"

???????services:
  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: appdb
      MYSQL_USER: appuser
      MYSQL_PASSWORD: userpass
    ports:
      - "3306:3306"
    volumes:
      - ./data/mysql:/var/lib/mysql
      - ./config/my.cnf:/etc/mysql/conf.d/my.cnf
      - ./initdb:/docker-entrypoint-initdb.d
    restart: unless-stopped

三、生產(chǎn)環(huán)境部署方案

3.1 完整配置示例

version: "3.8"

services:
  mysql:
    image: mysql:8.0
    container_name: production_mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
      MYSQL_DATABASE: ${DB_NAME}
      MYSQL_USER: ${DB_USER}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      TZ: Asia/Shanghai
    ports:
      - "${DB_PORT}:3306"
    volumes:
      - mysql_data:/var/lib/mysql
      - ./config/my.cnf:/etc/mysql/conf.d/my.cnf:ro
      - ./backups:/backups
    networks:
      - backend
    deploy:
      resources:
        limits:
          cpus: "2"
          memory: 2G
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 10s
      timeout: 5s
      retries: 3

volumes:
  mysql_data:
    driver: local
    driver_opts:
      type: none
      device: ./data/mysql
      o: bind

???????networks:
  backend:
    driver: bridge

3.2 環(huán)境變量文件(.env)

DB_ROOT_PASSWORD=your_strong_root_password
DB_NAME=production_db
DB_USER=app_user
DB_PASSWORD=your_app_user_password
DB_PORT=3306

四、高級(jí)配置技巧

4.1 主從復(fù)制配置

services:
  mysql-master:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: masterpass
      MYSQL_REPLICATION_USER: repl_user
      MYSQL_REPLICATION_PASSWORD: repl_pass
    command:
      - --server-id=1
      - --log-bin=mysql-bin
      - --binlog-format=ROW
    volumes:
      - master_data:/var/lib/mysql
    networks:
      - mysql-cluster

  mysql-slave:
    image: mysql:8.0
    depends_on:
      - mysql-master
    environment:
      MYSQL_ROOT_PASSWORD: slavepass
      MYSQL_MASTER_HOST: mysql-master
      MYSQL_MASTER_USER: repl_user
      MYSQL_MASTER_PASSWORD: repl_pass
    command:
      - --server-id=2
    volumes:
      - slave_data:/var/lib/mysql
    networks:
      - mysql-cluster

volumes:
  master_data:
  slave_data:

???????networks:
  mysql-cluster:
    driver: bridge

4.2 多環(huán)境配置管理

base-compose.yml:

services:
  mysql:
    image: mysql:${MYSQL_VERSION:-8.0}
    volumes:
      - ${DATA_VOLUME:-mysql_data}:/var/lib/mysql

docker-compose.prod.yml:

services:
  mysql:
    extends:
      file: base-compose.yml
      service: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${PROD_DB_PASSWORD}
    deploy:
      resources:
        limits:
          memory: 4G

五、安全加固方案

5.1 安全配置示例

services:
  mysql:
    image: mysql:8.0
    user: "999:999"
    cap_drop:
      - ALL
    security_opt:
      - no-new-privileges:true
    environment:
      - MYSQL_SECURE_TRANSPORT=ON
      - MYSQL_SSL=ON
    volumes:
      - ./ssl:/etc/mysql/ssl

5.2 網(wǎng)絡(luò)隔離

networks:
  internal:
    internal: true
  external:
    driver: bridge

services:
  mysql:
    networks:
      - internal
  app:
    networks:
      - internal
      - external

六、備份與恢復(fù)方案

6.1 備份服務(wù)配置

services:
  mysql:
    # ...原有配置...
    volumes:
      - ./backups:/backups

  backup:
    image: mysql:8.0
    depends_on:
      - mysql
    volumes:
      - ./backups:/backups
    command: >
      sh -c 'while true; do
        sleep 86400;
        mysqldump -h mysql -u root -p$$MYSQL_ROOT_PASSWORD --all-databases | gzip > /backups/backup_$$(date +%Y%m%d).sql.gz;
      done'
    environment:
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}

6.2 恢復(fù)流程

停止服務(wù):

docker-compose stop mysql

恢復(fù)數(shù)據(jù):

docker-compose run --rm mysql bash -c "gunzip < /backups/backup_20230101.sql.gz | mysql -u root -p${DB_ROOT_PASSWORD}"

七、性能優(yōu)化建議

7.1 資源限制與調(diào)優(yōu)

services:
  mysql:
    deploy:
      resources:
        limits:
          cpus: "4"
          memory: 8G
    environment:
      - MYSQL_INNODB_BUFFER_POOL_SIZE=4G
      - MYSQL_INNODB_LOG_FILE_SIZE=1G
      - MYSQL_TABLE_OPEN_CACHE=4000
      - MYSQL_MAX_CONNECTIONS=500

7.2 監(jiān)控集成

services:
  mysql:
    environment:
      - MYSQL_PERFORMANCE_SCHEMA=ON
    labels:
      - "prometheus.monitoring=true"

  prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

八、日常運(yùn)維管理

8.1 常用命令

啟動(dòng)服務(wù):

docker-compose up -d

查看日志:

docker-compose logs -f mysql

執(zhí)行備份:

docker-compose exec mysql mysqldump -u root -p${DB_ROOT_PASSWORD} --all-databases > backup.sql

8.2 版本升級(jí)流程

備份數(shù)據(jù)

修改 docker-compose.yml 中的鏡像版本

執(zhí)行更新:

docker-compose pull mysql
docker-compose up -d --force-recreate mysql

到此這篇關(guān)于通過(guò)Docker Compose部署MySQL的詳細(xì)教程的文章就介紹到這了,更多相關(guān)Docker Compose部署MySQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker-compose啟動(dòng)springboot項(xiàng)目連接mysql問(wèn)題

    docker-compose啟動(dòng)springboot項(xiàng)目連接mysql問(wèn)題

    這篇文章主要介紹了docker-compose啟動(dòng)springboot項(xiàng)目連接mysql問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • docker安裝nacos的詳細(xì)教程

    docker安裝nacos的詳細(xì)教程

    這篇文章主要介紹了docker安裝nacos,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • dockerfile echo指定文件多行文本的方法實(shí)現(xiàn)

    dockerfile echo指定文件多行文本的方法實(shí)現(xiàn)

    這篇文章主要介紹了dockerfile echo指定文件多行文本的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 解決docker加載新的鏡像后repository和tag名稱都為none的問(wèn)題

    解決docker加載新的鏡像后repository和tag名稱都為none的問(wèn)題

    這篇文章主要介紹了解決docker加載新的鏡像后repository和tag名稱都為none的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Docker容器的導(dǎo)入導(dǎo)出操作教程

    Docker容器的導(dǎo)入導(dǎo)出操作教程

    這篇文章主要給大家介紹了關(guān)于Docker容器的導(dǎo)入導(dǎo)出操作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 淺析Docker鏡像分層的注意事項(xiàng)

    淺析Docker鏡像分層的注意事項(xiàng)

    不知道大家在對(duì)程序進(jìn)行Docker鏡像打包會(huì)不會(huì)有些疑惑,比如鏡像分層打包最后匯總成程序的鏡像問(wèn)題,所以這篇針對(duì)一些問(wèn)題進(jìn)行了分析,文章主要介紹了Docker鏡像分層的一些注意事項(xiàng),有需要的朋友們可以參考學(xué)習(xí),下面來(lái)一起看看吧。
    2016-10-10
  • docker鏡像倉(cāng)庫(kù)hub.docker.com無(wú)法訪問(wèn)的解決方法

    docker鏡像倉(cāng)庫(kù)hub.docker.com無(wú)法訪問(wèn)的解決方法

    最近許多群友都詢問(wèn)為什么無(wú)法訪問(wèn)Docker鏡像倉(cāng)庫(kù),本文就來(lái)介紹一下docker鏡像倉(cāng)庫(kù)hub.docker.com無(wú)法訪問(wèn)的解決方法,感興趣的可以了解一下
    2023-08-08
  • k3s?通過(guò)docker部署?Kubernetes的方法步驟

    k3s?通過(guò)docker部署?Kubernetes的方法步驟

    本文主要介紹了k3s?通過(guò)docker部署?Kubernetes的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • docker Dockerfile文件制作自己的鏡像的方法

    docker Dockerfile文件制作自己的鏡像的方法

    這篇文章主要介紹了docker Dockerfile文件制作自己的鏡像的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Docker啟動(dòng)失敗報(bào)錯(cuò)Failed?to?start?Docker?Application?Container?Engine的解決辦法

    Docker啟動(dòng)失敗報(bào)錯(cuò)Failed?to?start?Docker?Application?Containe

    最近在啟動(dòng)Docker的時(shí)候發(fā)現(xiàn)了個(gè)錯(cuò)誤,所以下面這篇文章主要給大家介紹了關(guān)于Docker啟動(dòng)失敗報(bào)錯(cuò)Failed?to?start?Docker?Application?Container?Engine的解決辦法,需要的朋友可以參考下
    2022-08-08

最新評(píng)論

邳州市| 涞水县| 旬邑县| 夏津县| 万山特区| 荥经县| 德江县| 巴楚县| 绥江县| 新竹县| 苍南县| 滦南县| 松桃| 昌都县| 桃源县| 平遥县| 茂名市| 闽清县| 临洮县| 独山县| 岳西县| 库尔勒市| 观塘区| 凤台县| 洛阳市| 葫芦岛市| 锦屏县| 禹州市| 江川县| 福贡县| 西宁市| 曲靖市| 万盛区| 洛扎县| 甘孜县| 云霄县| 湖州市| 卓尼县| 双牌县| 高阳县| 兴宁市|