安装运行
我们把mysql的network=mynet,方便所有容器互通,
如何创建network详情看:https://www.jianshu.com/p/2468ef97ce1e
docker pull mysql:5.7
docker run --restart always -d --name mysql -v ~/develop/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -p 3306:3306 --network=mynet mysql:5.7
-v ~/develop/data/mysql:/var/lib/mysql 把docker mysql中的数据库路径映射到宿主机~/develop/data/mysql
-e MYSQL_ROOT_PASSWORD 设置密码
-e TZ=Asia/Shanghai 修改时区
--network=mynet 设置网络名称
ps:如果需要复制老的db到docker mysql中,我这里有个老数据库taoweb需要用,可以把db文件复制到~/develop/data/mysql/下,请记得chmod把宿主机的taoweb数据库文件权限设为都可以读写,否者会出现docker run错误
chown: changing ownership of '/var/lib/mysql/taoweb': Operation not permitted
sudo chmod -R 775 ~/develop/data/mysql/taoweb
宿主机连接mysql
因为进行了-p端口映射,所以只需要把mysql ip填为0.0.0.0就行了
image.png
同network的容器连接
可以直接用容器名mysql连接
mysql+pymysql://root:123456@mysql:3306/taoweb?charset=utf8mb4
测试可以ping通相同mynet网络下的redis
image.png
其他容器连接
可以用ip连接
#得到mysql的IP
docker inspect mysql | grep "IPAddress"
image.png
网友评论