使用 mysql 的 Docker 鏡像
前言
之前搞了很多都是手工在操作系統的鏡像中安裝使用 mysql,作為自己折騰也就算了,作為實際使用實為不妥:Docker最重要的特性就是可擴展性,把各種程序都放在一個容器里還如何擴展(當然如果用來統一開發、測試和線上環境還是可以的)。因此再來記錄一下直接使用 mysql 的官方 Docker 鏡像,以免回頭本末倒置,瞎折騰會了,正經的使用卻不會了,雖然非常簡單。
1. 下載 mysql 的 Docker 鏡像
使用 docker pull mysql 命令,具體的tag名稱可以去 Docker Hub 的 mysql 頁面 上查詢。
2. 啟動命令
其實 Docker Hub 的 mysql 頁面已有相關的說明了,但還應該加入端口映射:
docker run --name some-mysql -p 33060:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
3. 其它思考
官方給的原來啟動命令為(並沒有端口的映射):
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
連接命令也有點不同:
docker run -it --network some-network --rm mysql mysql -hsome-mysql -uexample-user -p
大概是啟動一個容器,然后用里面的連接程序去連接別的容器QAQ,其中 --rm 表示容器推出后自動刪除,多用於測試, --network 表示可以手工設定網絡。在我本地需要執行的命令為:
docker run -it --rm mysql mysql -h 172.17.0.2 -uroot -p
官方給的 mysql 是容器的名稱,嘗試后發現會報錯:
ERROR 2005 (HY000): Unknown MySQL server host 'mysql' (22)
嘗試換成 ip 地址后可以。
參考
- docker run --rm 的含義:https://blog.csdn.net/taiyangdao/article/details/73076770
- docker run --network 的含義:
https://www.cnblogs.com/jsonhc/p/7823286.html
https://www.cnblogs.com/zuxing/articles/8780661.html