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

Docker一鍵部署MySQL和Redis數(shù)據(jù)庫的實(shí)現(xiàn)

 更新時(shí)間:2025年06月19日 11:16:31   作者:特立獨(dú)行的貓a  
MySQL和Redis作為兩種廣泛使用的數(shù)據(jù)庫系統(tǒng),本文主要介紹了Docker一鍵部署MySQL和Redis數(shù)據(jù)庫的實(shí)現(xiàn),確保數(shù)據(jù)庫服務(wù)的穩(wěn)定運(yùn)行與持久化存儲(chǔ),感興趣的可以了解一下

一、前言

數(shù)據(jù)庫是現(xiàn)代應(yīng)用開發(fā)中不可或缺的一部分,MySQL和Redis作為兩種廣泛使用的數(shù)據(jù)庫系統(tǒng),分別用于關(guān)系型數(shù)據(jù)庫和鍵值存儲(chǔ)。本文旨在通過Docker和Docker Compose的方式,提供一個(gè)簡潔明了的一鍵部署方案,確保數(shù)據(jù)庫服務(wù)的穩(wěn)定運(yùn)行與持久化存儲(chǔ)。

二、Docker及Docker Compose安裝

2.1 Docker安裝

Docker安裝過程略有不同,根據(jù)您的操作系統(tǒng)選擇適合的安裝方式。以下以Ubuntu為例,簡要說明安裝步驟:

  • 更新包管理器

    sudo apt-get update
    
  • 安裝Docker

    sudo apt-get install -y docker.io
    
  • 啟動(dòng)Docker服務(wù)并設(shè)置開機(jī)自啟

    sudo systemctl start docker
    sudo systemctl enable docker
    
  • 驗(yàn)證Docker安裝

    sudo docker --version
    

2.2 Docker Compose安裝

Docker Compose的安裝相對(duì)簡單,同樣以Ubuntu為例:

  • 下載Docker Compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    

    請(qǐng)根據(jù)https://github.com/docker/compose/releases頁面上的最新版本調(diào)整上述命令中的版本號(hào)。

  • 賦予執(zhí)行權(quán)限

    sudo chmod +x /usr/local/bin/docker-compose
    
  • 驗(yàn)證Docker Compose安裝

    docker-compose --version
    

三、編寫Docker Compose文件

接下來,我們將編寫一個(gè)docker-compose.yml文件來定義MySQL和Redis的服務(wù),以及它們之間的網(wǎng)絡(luò)配置和持久化存儲(chǔ)設(shè)置。

version: "3"

# 聲明一個(gè)名為 'network' 的網(wǎng)絡(luò),配置子網(wǎng)和默認(rèn)網(wǎng)關(guān)
networks:
  network:
    ipam:
      driver: default
      config:
        - subnet: '177.7.0.0/16'

# 定義MySQL和Redis的持久化存儲(chǔ)卷
volumes:
  mysql:
  redis:

# 定義服務(wù)
services:
  mysql:
    image: mysql:8.0.21
    container_name: gva-mysql
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    restart: always
    ports:
      - "13306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 'Aa@6447985' # 設(shè)置root用戶密碼
      MYSQL_DATABASE: 'qmPlus'
      MYSQL_USER: 'gva'
      MYSQL_PASSWORD: 'Aa@6447985'
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "gva", "-pAa@6447985"]
      interval: 10s
      timeout: 5s
      retries: 3
    volumes:
      - mysql:/var/lib/mysql # 將MySQL的data目錄掛載到volume上,實(shí)現(xiàn)數(shù)據(jù)持久化
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql # 初始化腳本
    networks:
      network:
        ipv4_address: 177.7.0.13 # 指定MySQL容器的IP地址

  redis:
    image: redis:6.0.6
    container_name: gva-redis
    restart: always
    ports:
      - '16379:6379'
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping | grep PONG || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 3
    volumes:
      - redis:/data # 將Redis的數(shù)據(jù)目錄掛載到volume上,實(shí)現(xiàn)數(shù)據(jù)持久化
    networks:
      network:
        ipv4_address: 177.7.0.14 # 指定Redis容器的IP地址

3.1 配置解釋

  • networks: 定義了一個(gè)名為network的自定義網(wǎng)絡(luò),其中設(shè)置了子網(wǎng)范圍為177.7.0.0/16。這樣可以為MySQL和Redis容器分配固定的IP地址,便于管理和維護(hù)。

  • volumes: 為MySQL和Redis分別定義了存儲(chǔ)卷mysqlredis,用于保存數(shù)據(jù)庫文件,防止數(shù)據(jù)丟失。

  • services: 這里定義了兩個(gè)服務(wù),分別是MySQL和Redis。

    • MySQL:

      • 使用指定版本的MySQL鏡像。
      • 通過command字段設(shè)置了MySQL的啟動(dòng)參數(shù),包括字符集和排序規(guī)則。
      • environment字段設(shè)置了MySQL的環(huán)境變量,包括初始化數(shù)據(jù)庫、用戶名、密碼等。
      • healthcheck字段定義了健康檢查機(jī)制,幫助監(jiān)控MySQL服務(wù)的正常運(yùn)行狀態(tài)。
      • volumes字段將MySQL的data目錄與volume關(guān)聯(lián)起來,同時(shí)掛載了初始化腳本。
      • networks字段將MySQL容器加入到自定義網(wǎng)絡(luò),并指定了其IP地址。
    • Redis:

      • 使用指定版本的Redis鏡像。
      • healthcheck字段定義了健康檢查機(jī)制,幫助監(jiān)控Redis服務(wù)的正常運(yùn)行狀態(tài)。
      • volumes字段將Redis的數(shù)據(jù)目錄與volume關(guān)聯(lián)起來。
      • networks字段將Redis容器加入到自定義網(wǎng)絡(luò),并指定了其IP地址。
  • init.sql: 這是一個(gè)初始化腳本,用于在MySQL啟動(dòng)時(shí)自動(dòng)創(chuàng)建數(shù)據(jù)庫qmPlus和用戶gva,并授予相應(yīng)的權(quán)限。具體內(nèi)容如下:

    CREATE DATABASE IF NOT EXISTS qmPlus;
    CREATE USER IF NOT EXISTS 'gva'@'177.7.0.1' IDENTIFIED BY 'Aa@6447985';
    GRANT ALL PRIVILEGES ON qmPlus.* TO 'gva'@'177.7.0.1';
    FLUSH PRIVILEGES;
    

注意:這里創(chuàng)建的用戶gva配置允許從177.7.0.1進(jìn)行連接,這個(gè)是容器網(wǎng)絡(luò)的網(wǎng)關(guān)地址。為什么要配置為它?是為了讓容器外的宿主機(jī)能夠通過13306端口連接。

四、啟動(dòng)服務(wù)

在編寫好docker-compose.yml文件后,即可通過Docker Compose命令來啟動(dòng)服務(wù)。

  • 創(chuàng)建并啟動(dòng)容器

    sudo docker-compose -f deploy/docker-compose/docker-compose.yaml up -d
    
    • -d表示以后臺(tái)模式(detached)運(yùn)行容器。
  • 檢查容器狀態(tài)

    docker-compose ps
    #進(jìn)入某個(gè)容器
    sudo docker exec -it gva-mysql bash
    #查看容器掛載的卷
     sudo docker volume ls
     #進(jìn)入容器的卷
     sudo docker run -it --rm -v docker-compose_server:/volume-data --name temp-container busybox
     #查看端口占用情況
     sudo netstat -tulpn | grep :13306
    

    該命令將列出所有由docker-compose.yml文件定義的服務(wù)及其狀態(tài)。

五、停止服務(wù)

若需要停止并移除所有由docker-compose.yml文件定義的容器,可以使用以下命令:

docker-compose down
  • 該命令會(huì)停止并移除所有服務(wù)對(duì)應(yīng)的容器,同時(shí)保留volume中的數(shù)據(jù),從而達(dá)到持久化存儲(chǔ)的目的。

六、總結(jié)

通過本文,您已經(jīng)了解了如何利用Docker Compose實(shí)現(xiàn)MySQL和Redis的一鍵部署,包括Docker和Docker Compose的安裝、docker-compose.yml文件的編寫以及服務(wù)的啟動(dòng)與停止。

這種方法不僅簡化了數(shù)據(jù)庫服務(wù)的配置和管理,還確保了數(shù)據(jù)的安全性。

到此這篇關(guān)于Docker一鍵部署MySQL和Redis數(shù)據(jù)庫的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Docker一鍵部署MySQL和Redis內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解ASP.NET Core 網(wǎng)站在Docker中運(yùn)行

    詳解ASP.NET Core 網(wǎng)站在Docker中運(yùn)行

    本篇文章主要介紹了詳解ASP.NET Core 網(wǎng)站在Docker中運(yùn)行,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-05-05
  • Docker方式部署OceanBase數(shù)據(jù)庫的完整步驟

    Docker方式部署OceanBase數(shù)據(jù)庫的完整步驟

    OceanBase數(shù)據(jù)庫是一個(gè)高性能的分布式關(guān)系型數(shù)據(jù)庫,它支持多種部署方式,包括但不限于單機(jī)部署、集群部署等,這篇文章主要介紹了Docker方式部署OceanBase數(shù)據(jù)庫的完整步驟,需要的朋友可以參考下
    2025-04-04
  • Docker 與 Kubernetes 部署最佳實(shí)踐指南

    Docker 與 Kubernetes 部署最佳實(shí)踐指南

    本文介紹了Docker與Kubernetes部署的最佳實(shí)踐,涵蓋Dockerfile優(yōu)化、鏡像管理、容器運(yùn)行、Kubernetes部署配置、服務(wù)配置、配置管理、存儲(chǔ)管理、網(wǎng)絡(luò)配置、CI/CD集成、監(jiān)控與日志、安全最佳實(shí)踐、性能優(yōu)化、實(shí)際應(yīng)用場景及未來發(fā)展趨勢(shì)
    2026-04-04
  • 在Docker中開發(fā)Java 8 Spring Boot應(yīng)用程序的方法

    在Docker中開發(fā)Java 8 Spring Boot應(yīng)用程序的方法

    在本文中,我將向您展示如何使用Java 8開發(fā)和運(yùn)行簡單的Spring Web應(yīng)用程序,而無需在本地計(jì)算機(jī)上安裝Java 8。感興趣的朋友跟隨小編一起看看吧
    2019-10-10
  • docker部署Trilium?Notes和cpolar,實(shí)現(xiàn)遠(yuǎn)程在線協(xié)作(圖文教程)

    docker部署Trilium?Notes和cpolar,實(shí)現(xiàn)遠(yuǎn)程在線協(xié)作(圖文教程)

    Trilium?Notes?是一款層次化筆記工具,能構(gòu)建大型個(gè)人知識(shí)庫,支持樹形結(jié)構(gòu)、Markdown?編輯、雙向鏈接和加密等功能,本文講述Trilium?Notes的中文版如何在Linux環(huán)境使用docker本地部署,并結(jié)合cpolar內(nèi)網(wǎng)穿透工具配置公網(wǎng)地址,輕松實(shí)現(xiàn)遠(yuǎn)程在線協(xié)作的詳細(xì)教程
    2026-01-01
  • Docker使用Buildx多架構(gòu)鏡像構(gòu)建指南

    Docker使用Buildx多架構(gòu)鏡像構(gòu)建指南

    Docker Buildx支持多平臺(tái)鏡像構(gòu)建,解決ARM/x86架構(gòu)兼容性問題,提升部署效率,通過QEMU模擬與跨平臺(tái)功能,實(shí)現(xiàn)一次構(gòu)建多架構(gòu)鏡像,本指南將逐步介紹如何使用Buildx構(gòu)建多架構(gòu)鏡像,并優(yōu)化構(gòu)建性能,感興趣的朋友一起看看吧
    2025-08-08
  • 詳解用Docker快速搭建一個(gè)博客網(wǎng)站

    詳解用Docker快速搭建一個(gè)博客網(wǎng)站

    本文主要介紹了用Docker快速搭建一個(gè)博客網(wǎng)站,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Docker拉取鏡像時(shí)遇到dial tcp...443:i/o timeout錯(cuò)誤的解決方案

    Docker拉取鏡像時(shí)遇到dial tcp...443:i/o timeout錯(cuò)誤的解決方案

    本文介紹了如何解決在使用Docker時(shí)遇到的網(wǎng)絡(luò)超時(shí)問題,包括配置鏡像加速服務(wù)以提高鏡像拉取速度和穩(wěn)定性
    2025-12-12
  • Docker啟用TLS實(shí)現(xiàn)安全配置的步驟

    Docker啟用TLS實(shí)現(xiàn)安全配置的步驟

    這篇文章主要給大家介紹了關(guān)于Docker啟用TLS實(shí)現(xiàn)安全配置的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Docker具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 搭建docker-nginx服務(wù),訪問nginx報(bào)錯(cuò)403問題及解決

    搭建docker-nginx服務(wù),訪問nginx報(bào)錯(cuò)403問題及解決

    這篇文章主要介紹了搭建docker-nginx服務(wù),訪問nginx報(bào)錯(cuò)403問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03

最新評(píng)論

东丰县| 醴陵市| 绍兴市| 江西省| 启东市| 吴堡县| 富民县| 娄底市| 博白县| 山丹县| 石阡县| 安仁县| 南京市| 贵溪市| 京山县| 图片| 南投县| 青海省| 大新县| 长葛市| 离岛区| 上林县| 永康市| 杂多县| 青阳县| 廉江市| 余干县| 花莲市| 东安县| 建湖县| 庆元县| 腾冲县| 湘乡市| 舞钢市| 吕梁市| 南汇区| 密山市| 合水县| 伊春市| 介休市| 竹山县|