MySQL 是一個廣泛被使用,開源的關聯式資料庫管理系統( relational database management system, RDBMS)

目前的MySQL執行效能不斷提升,可靠且易於使用,

因此經常被作為網路應用程式開發資料庫的首選.

其中包括 Facebook, Twitter, YouTube, Yahoo 等公司都有使用。

詳細說明可參考官網: www.mysql.com.

這裡將說明如何在 Docker 安裝即執行 MySQL 環境

快速安裝:

docker pull mysql

自訂安裝版本

這裡推薦使用自訂安裝的方式,首先要先了解幾個部分:

some-mysql : 可自訂container名稱

tag: 自訂要安裝的 MySQL 版本 (mysql version 可以查看這裡

my-secret-pw: 設定MySQL密碼 (預設使用者帳號為 root)

MYSQL_ROOT_PASSWORD:這個變數可以用來設定root 使用者帳戶的密碼(也就是上面這個 my-secret-pw)

-p:將本機 3306 port 的來源轉發到 container 的 3306 port

指令如下:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql:tag

例如:

docker run --name AdamMysql -e MYSQL_ROOT_PASSWORD=mypassword -d -p 3306:3306 mysql:latest

執行完成後,預設port 為 3306

停止執行 MySQL Container

docker stop some-mysql 

例如

docker stop AdamMysql

移除 MySQL Container

docker rm some-mysql

例如

docker rm AdamMysql

從其他 Container 連結到這個 MySQL Container

當執行 run 其他 container 時候,可以透過 container linking 連結到這個 MySQL Container

docker run --name anOtherApp --link some-mysql:mysql -d application-that-uses-mysql

例如:

docker run --name anOtherApp --link AdamMysql:mysql -d application-that-uses-mysql

在 MySQL Container 中執行 bash shell

透過下方指令,就能在你的 MySQL Container 中執行 bash shell

docker exec -it some-mysql bash

例如:

docker exec -it AdamMysql bash

離開 bash

輸入 exit 即可離開 bash

查詢 MySQL Log

docker logs some-mysql

例如:

docker logs AdamMysql

MySQL 主設定檔案位置

/etc/mysql/my.cnf

查看可使用的參數

下方指令可以查詢可使用的 option

docker run -it --rm mysql:tag --verbose --help

如何在 Container 使用 apt-get

進入 MySql bash

docker exec -it some-mysql bash

更新 apt-get

apt-get update

Container 預設無 nano,因此這裡透過 apt-get 安裝 nano

apt-get install nano