docker 容器间通信

Docker 间容器通信

描述:

我只有一个服务器,所有应用都是基于docker 。包括 nginx 、mysql、redis、等

但是觉得用服务器ip 会有一个解析的过程 然后想当然 就用了 localhost 127.0.0.1

结局很明显 连不上 报错。

最后 参考 最新docker环境部署容器之间互通( 例子:Hyperf+MySQL)_余祥伟的博客-CSDN博客 一文

最新[docker]官方已经抛弃 --link指定容器的连通方式

1.通过 查询容器内网地址

docker inspect [container name] //查看内网地址

找到配置的内网ip :"NetworkSettings":"IPAddress": "172.17.0.9" 进行通信

端口是 docker run 3306:3306 指定的前面那个端口3306。

image

诚然 这样可能不够 优雅 上线还需变动ip

2.通过指定Docker 共享网络通信

1.创建共享网络

docker network create --subnet 172.20.0.1/16 mynet

//整条命令复制执行就行不用改这个ip

//当然 会网段的 可以改 但不能冲突 后面mynet 为 共享网络名

2.运行时加入命令 --net

如果想要 相互通信 启动容器时 --net mynet 命令加入同一共享网络

如:mysql

docker run -itd --name mysql -p 3306:3306 --net=mynet -e MYSQL_ROOT_PASSWORD=123456

或:docker run --name erp  -p 9501:9501 --net=mynet -it --privileged -u root

posted @ 2022-01-05 11:55  无小空空  阅读(117)  评论(0编辑  收藏  举报