在docker中使用mysql數據庫,在局域網訪問


注:本文所有內容均在CentOS Linux release 7.2.1511 (Core) 上測試完成

假設,你已經安裝好docker。如果沒有安裝好docker可以參考centos7上安裝docker

使用

docker pull mysql
  • 1

獲得mysql鏡像,接着使用

docker images
  • 1

查看鏡像列表,如下
image

使用

docker run -itd -P mysql bash
eg:
docker run -itd --name=mariadb_container_20180224 -p 3306:3306 mariadb /bin/bash
mkdir -p /data/mysql/data
chcon -Rt svirt_sandbox_file_t /data/mysql/data
docker run -v /data/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mariadb -itd mariadb:latest
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mariadb -itd mariadb:latest

  

 
  • 1

啟動mysql鏡像,docker run是啟動容器的命令;i是交互式操作,t是一個終端,d指的是在后台運行,-P指在本地生成一個隨機端口,用來映射mysql的3306端口,mysql指運行mysql鏡像,bash指創建一個交互式shell。

使用

docker ps -a
  • 1

查看已經運行的docker鏡像,如下
image

從途中可以看到mysql鏡像的3306端口綁定了本地的32773端口,因此就說如果你要在局域網中訪問docker中的mysql數據庫就需要使用服務器IP:32773來進行訪問。

使用命令

docker exec -it sick_hawking bash
  • 1

連接到mysql鏡像中,

docker exec
  • 1

是docker鏡像的連接命令,類似於ssh一樣的命令,sick_hawking是鏡像的名字,鏡像每次啟動都必須有一個名字,該名字可以手動指定也可以自己生成。

連接成功以后,如下,

image

圖中就已經進入到了docker mysql鏡像中,使用

service mysql status
  • 1

查看mysql的啟動狀態,如下,
image

mysql沒有啟動可以使用

service mysql start
  • 1

,如下,
image

輸入mysql驗證mysql是否啟動成功,如下,
image

image

到此為止,docker中的mysql已經啟動成功。

如何在外部使用root連接這個mysql?

為了安全,首先需要設置root帳號的密碼,如下

update user set authentication_string = password('root') where user = 'root';
  • 1

root的密碼改為root
接着,由於mysql中root執行綁定在了localhost,因此需要對root進行授權,代碼如下,

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
  • 1

最后,使用navitecat測試mysql連接,如下,
image

連接成功,說明docker中的mysql可以在局域網中使用。

完。

CREATE USER
  'techonthenet'@'localhost' IDENTIFIED BY 'firstpassword',
  'checkyourmath'@'%' IDENTIFIED BY 'secondpassword';

  

 

It looks like a container with the name qgis-desktop-2-4 already exists in the system. You can check output of below command to confirm if it indeed exists:

$ docker ps -a

Last column in above command's output is for names.

If the container exists, remove it using:

$ docker rm qgis-desktop-2-4

or forcefully using,

$ docker rm -f qgis-desktop-2-4


免責聲明!

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



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