注:本文所有內容均在CentOS Linux release 7.2.1511 (Core) 上測試完成
假設,你已經安裝好docker。如果沒有安裝好docker可以參考centos7上安裝docker
使用
docker pull mysql
- 1
獲得mysql鏡像,接着使用
docker images
- 1
查看鏡像列表,如下

使用
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鏡像,如下

從途中可以看到mysql鏡像的3306端口綁定了本地的32773端口,因此就說如果你要在局域網中訪問docker中的mysql數據庫就需要使用服務器IP:32773來進行訪問。
使用命令
docker exec -it sick_hawking bash
- 1
連接到mysql鏡像中,
docker exec
- 1
是docker鏡像的連接命令,類似於ssh一樣的命令,sick_hawking是鏡像的名字,鏡像每次啟動都必須有一個名字,該名字可以手動指定也可以自己生成。
連接成功以后,如下,

圖中就已經進入到了docker mysql鏡像中,使用
service mysql status
- 1
查看mysql的啟動狀態,如下,

mysql沒有啟動可以使用
service mysql start
- 1
,如下,

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


到此為止,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連接,如下,

連接成功,說明docker中的mysql可以在局域網中使用。
完。
CREATE USER 'techonthenet'@'localhost' IDENTIFIED BY 'firstpassword', 'checkyourmath'@'%' IDENTIFIED BY 'secondpassword';
|
It looks like a container with the name
Last column in above command's output is for names. If the container exists, remove it using:
or forcefully using,
|
