Docker案例分析:搭建MySQL數(shù)據(jù)庫(kù)服務(wù)
使用官方的mysql鏡像搭建數(shù)據(jù)庫(kù)服務(wù),目前的latest版本對(duì)應(yīng)8.0.19版本,為防止后續(xù)官方更新版本后下面步驟出現(xiàn)兼容性問(wèn)題,使用鏡像時(shí)可指定8.0.19版本。
1 創(chuàng)建配置和數(shù)據(jù)目錄
在本機(jī)創(chuàng)建目錄用于存儲(chǔ)mysql的配置和數(shù)據(jù)。
- 配置文件目錄:
~/docker/conf/mysql - 數(shù)據(jù)文件目錄:
~/docker/data/mysql
docker pull mysql
3 從鏡像內(nèi)復(fù)制配置文件到宿主機(jī)
鏡像內(nèi)部配置文件存放在/etc/mysql目錄下,臨時(shí)創(chuàng)建容器復(fù)制配置文件目錄到本機(jī)~/docker/conf/目錄
# 創(chuàng)建名為mysql的容器 docker run --name mysql -e MYSQL_ROOT_PASSWORD=crane -d mysql # 復(fù)制docker容器內(nèi)配置文件到本地~/docker/conf/mysql目錄 docker cp mysql:/etc/mysql /Users/crane/docker/conf/ # 停止并刪除臨時(shí)容器 docker stop mysql docker rm mysql
4 創(chuàng)建并運(yùn)行mysql容器
掛載宿機(jī)配置和數(shù)據(jù)文件目錄到docker容器內(nèi)部,終端執(zhí)行如下命令
# ~/docker/conf/mysql目錄下為mysql配置文件 # ~/docker/data/mysql目錄下為mysql數(shù)據(jù)文件 # 本機(jī)的3306和33060端口分別映射docker內(nèi)部的3306和33060端口 # 數(shù)據(jù)庫(kù)root密碼為crane # -d后臺(tái)運(yùn)行docker docker run --name mysql -v ~/docker/conf/mysql:/etc/mysql/conf.d -v ~/docker/data/mysql:/var/lib/mysql -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=crane -d mysql
5 宿主機(jī)連接數(shù)據(jù)庫(kù)
5.1 終端命令連接
上一步驟容器啟動(dòng)成功后,在宿主機(jī)終端執(zhí)行以下命令連接數(shù)據(jù)庫(kù)
# 輸入以下命令后回車,輸入數(shù)據(jù)庫(kù)密碼crane mysql -uroot -p --protocol=tcp

上面命令指定使用tcp連接數(shù)據(jù)庫(kù),如果不添加--protocol=tcp,默認(rèn)會(huì)使用socket連接,會(huì)報(bào)錯(cuò)如下

5.2 數(shù)據(jù)庫(kù)工具連接
也可用數(shù)據(jù)庫(kù)工具連接,如DataGrip,進(jìn)行相關(guān)數(shù)據(jù)操作。


6 查看mysql日志
容器正常運(yùn)行過(guò)程中可使用下面命令查看日志
docker logs -f mysql
搭建服務(wù)時(shí)使用外部掛載的配置和數(shù)據(jù),便于數(shù)據(jù)備份和遷移。如果在另外一臺(tái)主機(jī)上使用相同版本的docker鏡像啟動(dòng)一個(gè)容器,掛載備份的配置和數(shù)據(jù),將會(huì)得到完全一致的數(shù)據(jù)庫(kù)配置和數(shù)據(jù)。
參考 官方MySQL鏡像
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 基于Docker的Mysql主備搭建的實(shí)現(xiàn)步驟
- Docker搭建MySQL并掛載數(shù)據(jù)的全過(guò)程
- docker-compose搭建mongodb、mysql的詳細(xì)過(guò)程
- 基于Docker的MySQL主從復(fù)制環(huán)境搭建的實(shí)現(xiàn)步驟
- 詳解用Docker搭建外部可以訪問(wèn)的mysql
- docker搭建php+nginx+swoole+mysql+redis環(huán)境的方法
- 使用dockercompose搭建springboot-mysql-nginx應(yīng)用
- 如何使用?docker?搭建一個(gè)?mysql?服務(wù)
相關(guān)文章
一文詳解如何配置docker通過(guò)代理服務(wù)器拉取鏡像
這篇文章主要給大家介紹了關(guān)于如何配置docker通過(guò)代理服務(wù)器拉取鏡像的相關(guān)資料,如果在拉取Docker鏡像時(shí)遇到速度較慢的問(wèn)題,可以嘗試以下幾種方法解決,需要的朋友可以參考下2024-07-07
Docker搭建Skywalking的實(shí)現(xiàn)示例
本文主要介紹了Docker搭建Skywalking的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Docker中安裝ElasticSearch+Kibana+Logstash(ELK)實(shí)踐記錄
文章介紹了如何使用Docker在本地安裝和配置Elasticsearch、Kibana和Logstash(ELK堆棧),本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-03-03
Docker本地鏡像發(fā)布到阿里云的實(shí)現(xiàn)
本文主要介紹了Docker本地鏡像發(fā)布到阿里云的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Docker搭建Harbor公開(kāi)倉(cāng)庫(kù)的方法示例
這篇文章主要介紹了Docker搭建Harbor公開(kāi)倉(cāng)庫(kù)的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
Docker?exec?的實(shí)現(xiàn)原理介紹
這篇文章主要介紹了Docker?exec的實(shí)現(xiàn)原理,詳細(xì)解讀了docker?exec這個(gè)操作背后,Linux?Namespace更具體的工作原理,這種通過(guò)操作系統(tǒng)進(jìn)程相關(guān)的知識(shí),逐步剖析Docker容器的方法,需要的朋友可以參考一下2022-04-04
Docker構(gòu)建文件Dockerfile簡(jiǎn)單入門
這篇文章主要介紹了Docker構(gòu)建文件Dockerfile簡(jiǎn)單入門,需要的朋友可以參考下2022-04-04

