很多时候需要在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