今天接着上一篇的内容繼續來學習安裝運作mysql。建議先閱讀第一篇: windows安裝docker
一 檢視mysql版本
如果想知道mysql鏡像具體有哪幾個版本,需要去docker hub檢視。
位址如下:
https://hub.docker.com/r/library/二 拉取mysql鏡像
指令如下:
docker pull 鏡像名稱:版本号
打開指令視窗輸入
docker pull mysql:8.0
等待幾分鐘就完成了,然後輸入以下指令檢視鏡像
docker images
三 啟動mysql服務
docker run --name mysql8.0 -e MYSQL_ROOT_PASSWORD=123456 -d -p 23306:3306 mysql:8.0
解釋一下上面的指令的具體含義
docker run // 啟動容器
--name mysql8.0 // 指定容器名稱為mysql8.0
-e MYSQL_ROOT_PASSWORD=123456 // 配置環境變量,指定root使用者的密碼為123456
-d // 是否背景啟動,預設false
-p 23306:3306 // 将3306端口映射出來為23306進行通路
mysql:8.0 // 鏡像名稱
四 允許用戶端進行登入
第三步完成後一個docker容器就算起來了,我們用用戶端連接配接資料庫發現報錯了。

主要原因是mysql伺服器要求的認證插件版本與用戶端不一緻造成的。
使用指令 docker exec -it mysql8.0 /bin/bash 進入容器,然後登入mysql服務,指令如下:mysql -uroot -p 123456,登入成功後,use mysql ,使用sqlselect user,plugin from user 檢視認證插件。
可以看到root使用者使用的plugin是caching_sha2_password,mysql官方網站有如下說明:
意思是說caching_sha2_password是8.0預設的認證插件,必須使用支援此插件的用戶端版本。兩種方式一種是更新用戶端,另一種是修改插件認證為 mysql_native_password,我們看一下第二種。
// 第一:修改root的密碼為'root',摒棄原來的舊密碼。第二:使用mysql_native_password對新密碼進行編碼。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
// 重新整理權限
FLUSH PRIVILEGES;
這樣就完成了,用戶端可以正常登入。
五 docker常用指令
1.docker images // 檢視鏡像
2.docker run 鏡像名稱 // 生成一個正在運作的容器執行個體
3.docker stop 容器名稱 // 停止容器
4.docker rm 容器名稱 // 删除容器
5.docker start 容器名稱 // 啟動容器
6.docker restart 容器名稱 //重新開機容器
7.docker rmi 鏡像名稱 // 删除鏡像
8.docker exec -it 容器名稱 /bin/bash // 進入容器
9.docker ps // 顯示正在運作的所有容器
10.docker ps -a // 顯示所有容器(包括已經停止的)
11.docker pull 鏡像名稱:版本号 // 拉取鏡像