Docker 方式部署 MySQL 數(shù)據(jù)庫(kù),一看就會(huì)!
在日常開(kāi)發(fā)和測(cè)試中,部署數(shù)據(jù)庫(kù)常常是件繁瑣的事。但有了Docker,一切都變得簡(jiǎn)單高效!今天,我們就一起來(lái)用Docker快速部署一個(gè)MySQL數(shù)據(jù)庫(kù),讓你告別繁瑣配置,輕松上手!
為什么用Docker部署MySQL?
傳統(tǒng)方式安裝MySQL往往需要:
- 下載安裝包
- 手動(dòng)配置環(huán)境變量
- 調(diào)整配置文件
- 處理版本兼容問(wèn)題
使用Docker后,你只需一條命令,就能搞定一切:
- 快速拉起所需版本
- 無(wú)需擔(dān)心依賴(lài)沖突
- 容器隨時(shí)啟停、刪除,干凈利落
部署準(zhǔn)備
確保你已安裝以下環(huán)境:
- Docker 環(huán)境(推薦Docker Desktop或通過(guò) apt/yum 安裝)
- 基礎(chǔ)命令行操作知識(shí)
root@racknerd-a7aa50:~# docker --version
Docker version 27.5.1, build 9f9e405
一條命令跑起 MySQL 容器!
docker run -d \
--name mysql-demo \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /data/mysql:/var/lib/mysql \
mysql:8.0
參數(shù)說(shuō)明:
- -d:后臺(tái)運(yùn)行容器
- --name:給容器起個(gè)名字
- -p:端口映射(本機(jī)3306 → 容器3306)
- -e:設(shè)置環(huán)境變量(如 root 密碼)
- -v:掛載本地目錄,持久化數(shù)據(jù)庫(kù)數(shù)據(jù)
- mysql:8.0:使用 MySQL 8.0 官方鏡像
建議設(shè)置復(fù)雜一點(diǎn)的密碼,避免安全隱患。
驗(yàn)證是否部署成功
執(zhí)行以下命令查看容器狀態(tài):
docker ps -a
輸出中看到 mysql-demo 正在運(yùn)行說(shuō)明成功啦!如下圖所示:
你也可以用MySQL客戶(hù)端或工具(如 Navicat)連接測(cè)試。如下圖所示:
常用操作命令
查看日志:
docker logs -f mysql-demo
進(jìn)入容器內(nèi)部:
docker exec -it mysql-demo bash
停止容器:
docker stop mysql-demo
刪除容器:
docker rm -f mysql-demo
數(shù)據(jù)持久化說(shuō)明
使用 -v /data/mysql:/var/lib/mysql 參數(shù),將容器中的數(shù)據(jù)目錄映射到宿主機(jī) /data/mysql,即使容器刪除,數(shù)據(jù)依然存在。建議定期備份該目錄,防止意外丟失。
小貼士:添加自定義配置文件
如果你想使用自己的 MySQL 配置文件:
docker run -d \
--name mysql-demo \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /data/mysql:/var/lib/mysql \
-v /my/custom/my.cnf:/etc/mysql/my.cnf \
mysql:8.0
這樣可以靈活調(diào)整參數(shù),比如連接數(shù)、字符集等。如果你覺(jué)得 docker run 命令太長(zhǎng)太繁瑣,那你一定會(huì)喜歡 docker-compose!我們只需寫(xiě)好一個(gè)配置文件,執(zhí)行一條命令即可完成部署。
version: '3.8'
services:
mysql:
image:mysql:8.0
container_name:mysql-demo
restart:always
ports:
-"3306:3306"
environment:
MYSQL_ROOT_PASSWORD:123456
MYSQL_DATABASE:testdb
MYSQL_USER:testuser
MYSQL_PASSWORD:testpass
volumes:
-./mysql-data:/var/lib/mysql
-./my.cnf:/etc/mysql/my.cnf # 可選:自定義配置
說(shuō)明:
- 啟動(dòng)后將自動(dòng)創(chuàng)建 testdb 數(shù)據(jù)庫(kù)和一個(gè) testuser 用戶(hù);
- 數(shù)據(jù)將存儲(chǔ)到當(dāng)前目錄下的 ./mysql-data 文件夾中;
- 可掛載 my.cnf 實(shí)現(xiàn)自定義參數(shù)配置。
總結(jié)
通過(guò)Docker部署MySQL:
- 簡(jiǎn)單快速
- 易于管理
- 更適合開(kāi)發(fā)測(cè)試環(huán)境
- 輕松實(shí)現(xiàn)版本控制和環(huán)境隔離
不管你是開(kāi)發(fā)者還是運(yùn)維人員,掌握這一技能,能大大提升效率!