docker中使用mysql數(shù)據(jù)庫詳解(在局域網(wǎng)訪問)
前言
開發(fā)過程中經(jīng)常需要安裝、調(diào)試mysql數(shù)據(jù)庫,還需要在各種操作系上安裝包依賴,實在是繁瑣,因此就研究了一下如何在docker上運行一個mysql鏡像,省卻了我安裝、找依賴的問題。
注:本文所有內(nèi)容均在CentOS Linux release 7.2.1511 (Core) 上測試完成
假設(shè),你已經(jīng)安裝好docker。如果沒有安裝好docker可以參考centos7上安裝docker
使用
docker pull mysql
獲得mysql鏡像,接著使用
docker images
查看鏡像列表,如下
使用
docker run -itd -P mysql bash
啟動mysql鏡像,docker run是啟動容器的命令;i是交互式操作,t是一個終端,d指的是在后臺運行,-P指在本地生成一個隨機端口,用來映射mysql的3306端口,mysql指運行mysql鏡像,bash指創(chuàng)建一個交互式shell。
使用
docker ps -a
查看已經(jīng)運行的docker鏡像,如下 image
從途中可以看到mysql鏡像的3306端口綁定了本地的32773端口,因此就說如果你要在局域網(wǎng)中訪問docker中的mysql數(shù)據(jù)庫就需要使用服務(wù)器IP:32773來進(jìn)行訪問。
使用命令
docker exec -it sick_hawking bash
連接到mysql鏡像中,
docker exec
是docker鏡像的連接命令,類似于ssh一樣的命令,sick_hawking是鏡像的名字,鏡像每次啟動都必須有一個名字,該名字可以手動指定也可以自己生成。
連接成功以后,如下,
圖中就已經(jīng)進(jìn)入到了docker mysql鏡像中,使用
service mysql status
查看mysql的啟動狀態(tài),如下,
mysql沒有啟動可以使用
service mysql start
,如下,
輸入mysql驗證mysql是否啟動成功,如下,
到此為止,docker中的mysql已經(jīng)啟動成功。
如何在外部使用root連接這個mysql?
為了安全,首先需要設(shè)置root帳號的密碼,如下
update user set authentication_string = password('root') where user = 'root';
將root的密碼改為root。 接著,由于mysql中root執(zhí)行綁定在了localhost,因此需要對root進(jìn)行授權(quán),代碼如下,
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
最后,使用navitecat測試mysql連接,如下,
連接成功,說明docker中的mysql可以在局域網(wǎng)中使用。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對給各位iOS開發(fā)者們能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Docker 容器生命周期 架構(gòu) 以及和VM之間的差異詳解
這篇文章主要介紹了Docker 容器生命周期 架構(gòu) 以及和VM之間的差異詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11Docker 安裝 Jenkins 并解決初始安裝插件失敗問題
這篇文章主要介紹了Docker 安裝 Jenkins 并解決初始安裝插件失敗問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04