Docker教學2:如何使用Docker建立MySQL 8的環境以及管理連線設定
2020-12-11
在Windows上詳細的Docker容器建置。上一篇我們教學如何安裝Docker,本篇會教學如何使用Docker找到鏡像檔(image)、下載鏡像檔(image)、啟動鏡像檔(image)封裝成容器(container),以安裝MySQL 8為例實際詳細的步驟,也會順便教導如何在Docker內開啟MySQL遠端訪問許可權(對外連線)。
前言
還沒學過安裝Docker的可以參考上一篇。
Docker教學1:在Windows Docker安装教學、初步設定
在開始安裝前我們會用到以下指令,這邊簡單介紹指令。 docker search,在docker hub中找尋鏡像檔(image),XXX為鏡像檔名。
docker search XXX
docker pull,在docker hub中下載名為XXX之鏡像檔(image)。
docker pull XXX
docler images,列出本機內已安裝的鏡像檔(image)。
docler images
docker run,將鏡像檔建置為容器,下方會以MySQL作範例詳細介紹。
docker run ~省略
如何建置一個容器
-
使用系統管理者身分開啟命令提示字元
-
在Docker Hub中尋找鏡像檔(image),這邊我們要找尋MySQL,在終端畫面中輸入指令:
docker search mysql
找尋結果如下圖:
-
找到我們要的鏡像檔(image)後,在終端畫面中輸入指令:
docker pull mysql
等待下載後,在終端畫面中輸入指令:
docker images
結果如下圖:
-
下載完成後,接下來我們就要來啟動它製作成容器(container),在終端畫面中輸入指令:
docker run --name mysql-latest -v D:/Docker/mysql/mysql-latest/custom:/etc/mysql/conf.d -v D:/Docker/mysql/mysql-latest/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
Port開通會要求防火牆權限,選擇允許存取。
補充說明:
--name mysql-latest ▲ --name xxxx 為容器名稱,可自定義。 -v D:/Docker/mysql/mysql-latest/custom:/etc/mysql/conf.d ▲ -v 為放置鏡像檔的路徑(本機),與要鏡像出來的檔案(容器內),以「:」分隔。 -p 3306:3306 ▲ -p 將本機內的port關聯至容器內的port。 -e MYSQL_ROOT_PASSWORD=123456 ▲ -e 容器環境參數變數設定。 -d mysql:latest ▲ -d 讓Container在背景執行。
- 這樣容器(container)就完成了,初次建立完後會自動啟用容器(container),這時候MySQL的服務就可以開始使用了,但因為MySQL 8改為需要自行建立使用者和設定密碼,然後才能遠端連線,所以下一步會教大家怎麼設定。
- 快按兩下打開容器後,點選右上CLI按鈕,開啟容器終端環境(bash)
-
使用root權限登入,在終端畫面中輸入指令:
mysql -u root -p
此時會請你輸入密碼,密碼為一開始docker run指令所輸入的,本文為123456,輸入密碼時沒有任何反應產生是正常的,請安心輸入後按Enter。
-
建立新帳號且對外開放連線,在終端畫面中依序輸入指令:
帳號/密碼,test/test123(可自定義)。
CREATE USER 'test'@'%' IDENTIFIED BY 'test123';
GRANT ALL ON *.* TO 'test'@'%' WITH GRANT OPTION;
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'test123';
三個都OK之後,我們就可以開始使用MySQL資料庫囉。
- 測試連線,參考如下圖:
完成囉~
結論
這樣就完成一個Docker的容器囉,快去嘗試著建置吧! 下篇會補充教學在MySQL遇到資料表、欄位發生大小寫敏感時的解決方式。