Docker案例分析:搭建MySQL數據庫服務

使用官方的mysql鏡像搭建數據庫服務,目前的latest版本對應8.0.19版本,為防止後續官方更新版本後下面步驟出現兼容性問題,使用鏡像時可指定8.0.19版本。

1 創建配置和數據目錄

在本機創建目錄用於存儲mysql的配置和數據。

  • 配置文件目錄:~/docker/conf/mysql
  • 數據文件目錄:~/docker/data/mysql
docker pull mysql

3 從鏡像內復制配置文件到宿主機

鏡像內部配置文件存放在/etc/mysql目錄下,臨時創建容器復制配置文件目錄到本機~/docker/conf/目錄

# 創建名為mysql的容器
docker run --name mysql -e MYSQL_ROOT_PASSWORD=crane -d mysql

# 復制docker容器內配置文件到本地~/docker/conf/mysql目錄
docker cp mysql:/etc/mysql /Users/crane/docker/conf/

# 停止並刪除臨時容器
docker stop mysql
docker rm mysql

4 創建並運行mysql容器

掛載宿機配置和數據文件目錄到docker容器內部,終端執行如下命令

# ~/docker/conf/mysql目錄下為mysql配置文件
# ~/docker/data/mysql目錄下為mysql數據文件
# 本機的3306和33060端口分別映射docker內部的3306和33060端口
# 數據庫root密碼為crane
# -d後臺運行docker
docker run --name mysql -v ~/docker/conf/mysql:/etc/mysql/conf.d -v ~/docker/data/mysql:/var/lib/mysql -p 3306:3306 -p 33060:33060 -e MYSQL_ROOT_PASSWORD=crane -d mysql

5 宿主機連接數據庫

5.1 終端命令連接

上一步驟容器啟動成功後,在宿主機終端執行以下命令連接數據庫

# 輸入以下命令後回車,輸入數據庫密碼crane
mysql -uroot -p --protocol=tcp

在這裡插入圖片描述

上面命令指定使用tcp連接數據庫,如果不添加–protocol=tcp,默認會使用socket連接,會報錯如下

在這裡插入圖片描述

5.2 數據庫工具連接

也可用數據庫工具連接,如DataGrip,進行相關數據操作。

在這裡插入圖片描述

在這裡插入圖片描述

6 查看mysql日志

容器正常運行過程中可使用下面命令查看日志

docker logs -f mysql

搭建服務時使用外部掛載的配置和數據,便於數據備份和遷移。如果在另外一臺主機上使用相同版本的docker鏡像啟動一個容器,掛載備份的配置和數據,將會得到完全一致的數據庫配置和數據。

參考 官方MySQL鏡像

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: