詳解使用Docker部署MySQL(數(shù)據(jù)持久化)
本文簡(jiǎn)述如何使用Docker部署mysql,同時(shí)持久化數(shù)據(jù).我們會(huì)用到tutum-docker-mysql 這個(gè)項(xiàng)目來(lái)搭建一個(gè)mysql,省去重頭寫(xiě)Dockerfile的時(shí)間.
首先我們將tutum-docker-mysql跑起來(lái).
docker run -d -p 3306:3306 --name mysql tutum/mysql
如果你本地沒(méi)有tutum/mysql的image,docker會(huì)先下載它的image,這一步可能會(huì)用些時(shí)間.待執(zhí)行完畢我們檢查一下應(yīng)該會(huì)有如下樣子

tutum-docker-mysql會(huì)自動(dòng)幫我們建一個(gè)隨機(jī)的密碼供我們?cè)L問(wèn),通過(guò)日志可以查看到.

我們通過(guò)日志上的密碼登陸mysql
mysql -uadmin -pi6k5USp9Km9G -h127.0.0.1
理論上我們這個(gè)時(shí)候就登陸mysql成功了,你可以創(chuàng)建一個(gè)庫(kù),一個(gè)張表,然后退出.但是當(dāng)這個(gè)container停止再重啟后,你的數(shù)據(jù)就丟了. 如何使你的數(shù)據(jù)真的被保存下來(lái)呢?
解決方案就是:掛載一個(gè)本地文件到Container (Mount a local folder from the host on the container to store the database files).
首先我們停掉之前的Container
docker stop mysql
我們指定一個(gè)本地可以掛載的路徑,重新啟動(dòng)tutum-docker-mysql.我們指定/home/walter/softwares/tutum-docker-mysql/data 掛到Container里的/var/lib/mysql目錄(-v Bind mount a volume). 這樣子我們就可以將數(shù)據(jù)持久化在主機(jī)(Host)的目錄中了.
sudo docker run -d -p 3306:3306 -v /home/walter/softwares/tutum-docker-mysql/data:/var/lib/mysql -e MYSQL_PASS="mypass" tutum/mysql
我們?cè)谏厦鎲?dòng)的時(shí)候順便指定了創(chuàng)建密碼為mypass,我們現(xiàn)在登陸一下mysql創(chuàng)建一些數(shù)據(jù),看看會(huì)不會(huì)被保存下來(lái)
shell>mysql -uadmin -pmypass -h127.0.0.1 mysql>create database test;
退出mysql,重啟Container,我們發(fā)下我們做的操作將會(huì)被保留下來(lái).我們之后每一次啟動(dòng)這個(gè)mysql都可以使用下面的命令
docker run -d -p 127.0.0.1:3306:3306 -v /home/walter/softwares/tutum-docker-mysql/data:/var/lib/mysql tutum/mysql
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker 配置固定IP及橋接的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker 配置固定IP和橋接的實(shí)現(xiàn)方法的相關(guān)資料,這里詳細(xì)介紹了Docker 的四種網(wǎng)絡(luò)模式及如何實(shí)現(xiàn)橋接的案例,需要的朋友可以參考下2016-10-10
Docker部署SpringBoot項(xiàng)目的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署SpringBoot項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2007-02-02
解決nacos啟動(dòng)時(shí)防火墻開(kāi)啟8848的坑
最近操作Nacos時(shí)遭遇8848端口無(wú)法訪問(wèn)的問(wèn)題,嘗試通過(guò)安全組和firewall配置仍無(wú)法解決,最終發(fā)現(xiàn),firewall對(duì)Docker使用專(zhuān)門(mén)的作用域,需要在相應(yīng)作用域下開(kāi)放端口,務(wù)必檢查firewall中針對(duì)Docker的設(shè)置,確保8848端口在正確的作用域內(nèi)被允許通行2022-10-10
docker容器內(nèi)部可以訪問(wèn),外部無(wú)法訪問(wèn)的處理
這篇文章主要介紹了docker容器內(nèi)部可以訪問(wèn),外部無(wú)法訪問(wèn)的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
解決docker掛載的目錄無(wú)法讀寫(xiě)問(wèn)題
這篇文章主要介紹了解決docker掛載的目錄無(wú)法讀寫(xiě)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03

