在docker中要使Hyperf和Mysql网络互通,则需要在创建相应容器的时候指定共享网络,步骤如下:
一、首先我们指定共享网络
docker network create --subnet 172.18.0.1/16 test //整条命令复制执行就行不用改这个ip
二、创建hyperf命令
docker run --name hyperf -v D:\hyperf2024\hyperf-skeleton:/data/project -p 9501:9501 --net=test -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf:7.4-alpine-v3.11-swoole
注意:其中的D:\目录 是你项目在windows10的磁盘文件,--net=test 是我们创建的共享网络,将hyperf的加入共享网络才能与后面的mysql,redis,kafka等进行通信。
三、创建MySQL命令
docker run -itd --name mysql -p 3306:3306 --net=test -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
注意:mysql运行成功就能用navcat进行连接,账号默认root 密码 MYSQL_ROOT_PASSWORD指定的123456 ,--net=test 是我们创建的共享网络,将hyperf的加入共享网络才能与后面的mysql,redis,kafka等进行通信
navcat进行连接时配置信息如下,密码是你刚才创建mysql时指定的密码,这里IP地址使用127.0.0.1
四、查看内网容器ip,在hyperf数据库配置中配置数据库连接信息
docker inspect [container name] //来查看到内网地址
直接翻到底部
找到配置的内网ip :"Gateway": "172.18.0.1" 进行通信 端口是 docker run 3306:3306 指定的前面那个端口3306,在.env中配置如下
(密码是你前面创建mysql时指定的密码)
五、测试数据库
浏览器输入地址, 运行Hyperf,即可发现数据库连接成功。
标签:--,MySQL,Hyperf,test,hyperf,mysql,3306,docker From: https://www.cnblogs.com/ivy-zheng/p/18051705