很多時候需要在mysql上進行實驗,在本地使用docker部署是一個很好的方式,故有此文:mac本地使用docker快速部署多個mysqlDB實例。
下載最新image:
docker pull mysql
本地部署多個mysql實例需要在host(容器外部)指定多個my.conf配置文件,以及多個目錄用於存放不同DB的數據。前者保證不同DB的埠不衝突,後者保證容器重啟後數據依然存在。
先在宿主機創建兩個DB的數據存儲目錄,用於本地持久化:
/Users/hepengyuan/Documents/docker-local/docker-local-mysql-0/data
/Users/hepengyuan/Documents/docker-local/docker-local-mysql-1/data
執行容器創建命令:
docker run --name mysql-0 -v /Users/hepengyuan/Documents/docker-local/docker-local-mysql-0/data:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:latest
docker run --name mysql-1 -v /Users/hepengyuan/Documents/docker-local/docker-local-mysql-1/data:/var/lib/mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:latest
-p: 指定埠映射,格式為:主機(宿主)埠:容器埠
--volume , -v: 綁定一個卷,格式為:主機(宿主)目錄:容器目錄
使用命令查看:docker ps
宿主機安裝mysqlclient:
brew install mysql-client
配置環境變量:/etc/profile
export PATH="/usr/local/opt/mysql-client/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/mysql-client/lib"
export CPPFLAGS="-I/usr/local/opt/mysql-client/include"
讓配置生效:
source /etc/profile
分別登入兩個mysql資料庫:
mysql -uroot -p -P3307 -h 127.0.0.1
mysql -uroot -p -P3308 -h 127.0.0.1
參考文章:
1.官方參考
https://registry.hub.docker.com/_/mysql