Docker1:本地連接Docker中的mysql,實現數據同步


說明:最近在學習Docker,打算記錄一下學習過程,不會從安裝開始,只記錄遇到的問題以及個人覺得“真香”的玩法。

后悔沒有早點學習,這幾天才發現是真的香啊,即使已經有了k8s,但我總覺得學習容器技術,也要先從Docker開始。話不多說,進入正題。

問題:在docker中安裝並啟動mysql,掛載本地目錄到容器,在本地使用Navicat連接容器中的數據庫,實現數據同步。

一、在docker中運行mysql鏡像

1、查詢mysql鏡像

docker images

2、啟動並掛載msyql數據目錄到本地指定目錄

docker run -p 3307:3306 --name mysql  -v /Users/hyc/DockerStudy/mysql/log:/var/log/mysql  -v /Users/hyc/DockerStudy/mysql/data:/var/lib/mysql  -v /Users/hyc/DockerStudy/mysql/conf:/etc/mysql  -e MYSQL_ROOT_PASSWORD=root  -d mysql:5.7 

 

3、查看docker容器是否啟動

docker ps

 mysql已經啟動,下面進入容器去連接mysql

4、進入容器連接mysql

docker exec -it 2e0e37441a3e /bin/bash
mysql -u root -p

  

 5、本地連接容器數據庫

點擊測試連接,發現成功;

 

 

6、測試數據同步問題

在本地新建數據庫docker和docker_test表並插入一些數據后,去容器查看,發現數據已經同步到了容器

 

 7、刪除容器

將運行的容器刪除后,發現本地連接失敗

docker rm -f 2e0e37441a3e

 刷新本地連接報錯如下

 

8、重新使用之前的命令運行容器

docker run -p 3307:3306 --name mysql  -v /Users/hyc/DockerStudy/mysql/log:/var/log/mysql  -v /Users/hyc/DockerStudy/mysql/data:/var/lib/mysql  -v /Users/hyc/DockerStudy/mysql/conf:/etc/mysql  -e MYSQL_ROOT_PASSWORD=root  -d mysql:5.7

 

 查看數據,發現數據也依然存在,並沒有因為數容器的刪除而刪除

 通過上面的操作發現,只要在docker中運行mysql鏡像,通過數據卷技術(后面細說)將本地目錄掛載到容器中的指定目錄,就能實現本地與容器間的數據同步,所以以后就不用在本地傻傻的安裝數據庫(還有別的軟件)了,

是真的香啊!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM