概述
通过Docker部署了,mysql还有mongodb。
发布服务端后发现不知道如何内网访问数据库,研究一下开搞。
为什么要打通容器目录
对于复杂的应用,不可避免需要多个服务部署在多个容器中,并且服务间存在相互间通信的情况。我不想在外网访问mysql,只在内网负责调用。
一、docker brctl
- 在安装好docker后,docker将创建一个linux网桥docker0,它在内核层连通了其他的物理或虚拟网卡,也就是所有容器和本地主机都放到同一个物理网络。我们可以通过 brctl 命令查看网桥的信息,brctl是需要自行安装的。
二、查看当前宿主机中所有的docker网络
- docker还会给我们创建三个网络:bridge/host/none。我们可以通过network ls命令查看当前宿主机中所有的docker网络。
三、配置docker网络
- 创建网络 docker network create [name]
- 其中,网桥bridge模式是在实际项目中常用的。接下来,以交互模式启动两个busybox容器。在没有指定相关网络的情况下,容器都会连接到默认的bridge网络。我们可以通过 --network 参数指定容器连接的网络。 docker run -p --name --network [name] -d images
- 启动容器后,检查当前默认网络情况。容器已经连接到了bridge网络,除此之外,还可以获取到指定容器的IP地址。
- docker network inspect [name]
- 启动的时候可以加的参数
- docker run -p --name --network [name] --network-alias [name对应这个容器的别名随便起]-d images
四、删除创建的network