最新docker官方已经抛弃--link指定容器的连通方式
在按照官网的部署后安装MySQL后始终不能连上,再折腾半天后去查询相关问题,找到https://zhuanlan.zhihu.com/p/339726809这篇帖子,也还是不能连接上容器。最后有的说之间使用容器内网连接:
查看内网容器ip
docker inspect [container name] //来查看到内网地址
直接翻到底部
找到配置的内网ip :"NetworkSettings":"IPAddress": "172.17.0.3" 进行通信 端口是 docker run 3308:3306 指定的前面那个端口3308。 始终觉得这样使用不够优雅内网ip上线又会变动:
①首先我们指定共享网络:
docker network create --subnet 172.18.0.1/16 test //整条命令复制执行就行不用改这个ip
②创建hyperf命令:
docker run --name hyperf -v F:\hyperf\hyperf-skeleton:/data/project -p 9501:9501 --net=test -it --privileged -u root --entrypoint /bin/sh hyperf/hyperf:7.4-alpine-v3.11-swoole
注意:其中的F:\目录 是你项目在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等进行通信。
总结:
容器之间的互联是使用共享网络指定共同的内网ip进行桥接连通,第一步创建共享网络。第二步容器运行时指定好网络就行。