欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker中部署與配置MySQL 5.7的詳細(xì)指南

 更新時(shí)間:2025年08月03日 09:32:10   作者:萬山y(tǒng)  
使用 Docker 來管理數(shù)據(jù)庫非常方便,它可以將數(shù)據(jù)庫環(huán)境與你的主機(jī)系統(tǒng)完全隔離,本文將帶大家完成Docker部署配置MySQL 5.7的所有必要步驟,,需要的朋友可以參考下

使用 Docker 來管理數(shù)據(jù)庫非常方便,它可以將數(shù)據(jù)庫環(huán)境與你的主機(jī)系統(tǒng)完全隔離,實(shí)現(xiàn)快速部署、輕松遷移和清理。本教程將帶你完成所有必要步驟。

第一步:拉取 MySQL 5.7 鏡像

首先,我們需要從 Docker Hub 上獲取官方的 MySQL 5.7 鏡像。打開你的終端或命令行工具,輸入以下命令:

docker pull mysql:5.7

第二步:運(yùn)行 MySQL 容器并設(shè)置密碼 (docker run 方式)

這是最關(guān)鍵的一步。在運(yùn)行容器時(shí),我們必須通過環(huán)境變量來設(shè)置 root 用戶的初始密碼。

docker run --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_strong_password -d mysql:5.7
  • --name my-mysql: 給你的容器起一個(gè)好記的名字。
  • -p 3306:3306: 將主機(jī)的 3306 端口映射到容器的 3306 端口。
  • -e MYSQL_ROOT_PASSWORD=...: 設(shè)置 root 用戶的密碼。請(qǐng)務(wù)必將 your_strong_password 替換為你自己的強(qiáng)密碼!
  • -d: 在后臺(tái)運(yùn)行容器。

第三步:連接到你的 MySQL 數(shù)據(jù)庫

你可以通過主機(jī)上的 MySQL 客戶端(如 Navicat, DataGrip)或進(jìn)入容器內(nèi)部進(jìn)行連接。

  • 主機(jī)/IP: 127.0.0.1
  • 端口: 3306
  • 用戶: root
  • 密碼: 你設(shè)置的密碼

要進(jìn)入容器內(nèi)部,請(qǐng)使用 docker exec -it my-mysql bash,然后運(yùn)行 mysql -u root -p。

第四步:數(shù)據(jù)持久化(非常重要?。?/h2>

為了防止容器刪除后數(shù)據(jù)丟失,我們需要將數(shù)據(jù)目錄掛載到主機(jī)上。如果你已通過第二步啟動(dòng)了容器,請(qǐng)先用 docker stop my-mysqldocker rm my-mysql 將其停止并刪除。

然后使用 -v 參數(shù)重新啟動(dòng):

docker run --name my-mysql \
-p 3306:3306 \
-v /my/custom/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=your_strong_password \
-d mysql:5.7

-v /my/custom/mysql/data:/var/lib/mysql: 將主機(jī)上的 /my/custom/mysql/data 目錄(你可以自定義)掛載到容器內(nèi)的 /var/lib/mysql 目錄。

第五步:基本數(shù)據(jù)庫操作

連接成功后,你可以執(zhí)行標(biāo)準(zhǔn)的 SQL 命令,如 CREATE DATABASE my_app_db; 等。

第六步:使用 Docker Compose 管理 MySQL (推薦)

當(dāng)你的應(yīng)用變得復(fù)雜(例如,一個(gè)網(wǎng)站后端 + 一個(gè)數(shù)據(jù)庫),使用 docker run 命令來管理多個(gè)容器會(huì)非常繁瑣。Docker Compose 允許你使用一個(gè) YAML 文件來定義和運(yùn)行一個(gè)多容器的 Docker 應(yīng)用。

1. 創(chuàng)建docker-compose.yml文件

在你的項(xiàng)目目錄下,創(chuàng)建一個(gè)名為 docker-compose.yml 的文件,并填入以下內(nèi)容:

# 指定 docker-compose 文件版本
version: '3.7'

# 定義服務(wù)
services:
  # 服務(wù)名稱,可以自定義,這里叫 db
  db:
    # 使用的鏡像
    image: mysql:5.7
    # 容器名稱
    container_name: my-mysql-compose
    # 設(shè)置容器在退出時(shí)總是重新啟動(dòng),以保證服務(wù)高可用
    restart: always
    # 環(huán)境變量,等同于 docker run 的 -e 參數(shù)
    environment:
      MYSQL_ROOT_PASSWORD: your_strong_password # 在這里設(shè)置你的密碼
      # 你也可以在這里設(shè)置其他環(huán)境變量,例如:
      # MYSQL_DATABASE: my_app_db
      # MYSQL_USER: app_user
      # MYSQL_PASSWORD: user_password
    # 端口映射,等同于 docker run 的 -p 參數(shù)
    ports:
      - "3306:3306"
    # 數(shù)據(jù)卷掛載,等同于 docker run 的 -v 參數(shù)
    volumes:
      - ./mysql-data:/var/lib/mysql

# 你也可以在這里定義一個(gè)頂層 volumes,更規(guī)范
# volumes:
#   mysql_data:
# 然后在上面的 services.db.volumes 中使用 - mysql_data:/var/lib/mysql

文件解析:

  • version: 定義了 docker-compose.yml 文件的語法版本。
  • services: 定義了應(yīng)用包含的所有服務(wù)(容器)。
  • db: 我們?yōu)?MySQL 服務(wù)起的名字。
  • image, container_name, ports, environment: 這些都與 docker run 命令中的參數(shù)一一對(duì)應(yīng)。
  • restart: always: 這是一個(gè)非常有用的配置,它能確保在 Docker 重啟或容器因故退出后,自動(dòng)重新啟動(dòng)該容器。
  • volumes: 定義數(shù)據(jù)卷掛載。這里的 ./mysql-data:/var/lib/mysql 表示將當(dāng)前目錄下的 mysql-data 文件夾掛載到容器的 /var/lib/mysql。Compose 會(huì)自動(dòng)為你創(chuàng)建這個(gè)文件夾。

2. 啟動(dòng)和停止服務(wù)

現(xiàn)在,你只需要在 docker-compose.yml 文件所在的目錄下,使用簡(jiǎn)單的命令就可以管理你的 MySQL 服務(wù)了。

啟動(dòng)服務(wù)(后臺(tái)運(yùn)行):

docker-compose up -d

查看服務(wù)狀態(tài)和日志:

docker-compose ps
docker-compose logs -f db

停止并移除容器、網(wǎng)絡(luò):

docker-compose down

使用 docker-compose down 命令會(huì)停止并刪除容器,但通過 volumes 掛載的數(shù)據(jù)(即 mysql-data 文件夾)會(huì)保留下來,這正是我們想要的。

附錄:數(shù)據(jù)卷掛載 (Volume) vs. 文件拷貝 (COPY)

這是一個(gè)非常重要的概念,理解它們的區(qū)別有助于你正確地管理 Docker 數(shù)據(jù)。

特性數(shù)據(jù)卷掛載 (Volume / Mount)文件拷貝 (COPY / docker cp)
核心機(jī)制實(shí)時(shí)映射/鏈接一次性復(fù)制
數(shù)據(jù)流向雙向同步。主機(jī)和容器的更改會(huì)立即互相反映。單向。從主機(jī)復(fù)制到容器(或反向),之后兩者獨(dú)立。
生命周期數(shù)據(jù)獨(dú)立于容器存在。刪除容器后,主機(jī)上的數(shù)據(jù)依然保留。數(shù)據(jù)成為容器/鏡像的一部分。刪除容器,復(fù)制進(jìn)去的數(shù)據(jù)也會(huì)隨之刪除。
性能通常性能更高,特別是對(duì)于大量讀寫操作(如數(shù)據(jù)庫)。每次復(fù)制都需要 I/O 操作,不適合頻繁更改的數(shù)據(jù)。
使用場(chǎng)景1. 數(shù)據(jù)庫文件
2. 日志文件
3. 需要在主機(jī)上直接編輯的配置文件
1. 構(gòu)建鏡像時(shí) (COPY指令),將應(yīng)用代碼、靜態(tài)資源打包進(jìn)鏡像。
2. 運(yùn)行時(shí) (docker cp),從容器里取出一個(gè)日志快照,或向容器里傳入一個(gè)臨時(shí)文件。
命令示例docker run -v ...
volumes: (in docker-compose)
COPY . /app (in Dockerfile)
docker cp file.txt my-container:/tmp

簡(jiǎn)單類比:

  • 數(shù)據(jù)卷掛載就像在你電腦上為某個(gè)文件夾創(chuàng)建了一個(gè)快捷方式。你通過快捷方式修改文件,實(shí)際上修改的是原始文件。刪除快捷方式,原始文件不受影響。
  • 文件拷貝就像你把一個(gè)文件復(fù)制粘貼到另一個(gè)地方。之后你有了兩個(gè)獨(dú)立的文件副本,修改其中一個(gè)不會(huì)影響另一個(gè)。

對(duì)于數(shù)據(jù)庫這種需要持久化且數(shù)據(jù)會(huì)頻繁變動(dòng)的應(yīng)用,永遠(yuǎn)應(yīng)該使用數(shù)據(jù)卷掛載。

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

相關(guān)文章

  • Docker部署postgresql的方法實(shí)現(xiàn)

    Docker部署postgresql的方法實(shí)現(xiàn)

    本文主要介紹了Docker部署postgresql的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-01-01
  • Docker使用run命令部署Redis的完整指南

    Docker使用run命令部署Redis的完整指南

    Redis作為當(dāng)今最流行的內(nèi)存數(shù)據(jù)庫和緩存解決方案之一,與 Docker 容器技術(shù)的結(jié)合為開發(fā)者提供了極致的部署靈活性和環(huán)境一致性,下面我們來看看如何使用run命令部署Redis吧
    2025-03-03
  • Docker部署Kafka以及Spring Kafka實(shí)現(xiàn)

    Docker部署Kafka以及Spring Kafka實(shí)現(xiàn)

    這篇文章主要介紹了Docker部署Kafka以及Spring Kafka實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 在Ubuntu中安裝Docker和docker的使用方式

    在Ubuntu中安裝Docker和docker的使用方式

    這篇文章主要介紹了在Ubuntu中安裝Docker和docker的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 解決Docker容器下不能使用vim命令的問題

    解決Docker容器下不能使用vim命令的問題

    這篇文章介紹了解決Docker容器下不能使用vim命令的問題,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 在云服務(wù)器上基于docker安裝jenkins的實(shí)現(xiàn)步驟

    在云服務(wù)器上基于docker安裝jenkins的實(shí)現(xiàn)步驟

    本文主要介紹了在云服務(wù)器上基于docker安裝jenkins的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Docker打包SpringBoot鏡像的實(shí)現(xiàn)方式

    Docker打包SpringBoot鏡像的實(shí)現(xiàn)方式

    docker打包springboot鏡像,并不是簡(jiǎn)單的將springboot項(xiàng)目的jar包上傳容器里,然后啟動(dòng),這個(gè)操作很簡(jiǎn)單,但是如果我每次要查看容器中的日志就需要每次都進(jìn)入容器內(nèi)部進(jìn)行查看,這就非常麻煩了,所以本文介紹了Docker打包SpringBoot鏡像的實(shí)現(xiàn)方式,需要的朋友可以參考下
    2024-03-03
  • Docker安裝和簡(jiǎn)單使用入門教程

    Docker安裝和簡(jiǎn)單使用入門教程

    這篇文章主要介紹了Docker安裝和簡(jiǎn)單使用入門教程,由于小編使用的是linux系統(tǒng),支持docker的,所以安裝相對(duì)比較簡(jiǎn)單,需要的的朋友參考下吧
    2017-01-01
  • Docker中部署Redis集群與部署微服務(wù)項(xiàng)目的詳細(xì)過程

    Docker中部署Redis集群與部署微服務(wù)項(xiàng)目的詳細(xì)過程

    這篇文章主要介紹了Docker中部署Redis集群與部署微服務(wù)項(xiàng)目,主要包括使用docker部署的好處以及Docker與Kubernetes對(duì)比分析,需要的朋友可以參考下
    2022-06-06
  • docker鏡像的拉取登陸上傳及保存等相關(guān)使用命令

    docker鏡像的拉取登陸上傳及保存等相關(guān)使用命令

    這篇文章主要為大家介紹了docker鏡像的拉取登陸上傳及保存等相關(guān)使用命令,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04

最新評(píng)論