通过上一篇文章,我们可以解决同一个容器内的通讯问题,大家使用同一个桥接网络的方案是最简便的,但是我们的容器需要访问宿主机怎么办 ?
现实的场景,我们一般都是微服务全部部署到了容器内,但是像数据库这种极其需要稳定性的功能,我们是需要部署到宿主机上面的,别问我为什么不买云数据库,问就是穷。其实要解决这个问题很简单,只需要我们指导桥接网络的原理。桥接网络相当于是宿主机当成的交换机主机,然后新创建的了一个网段,而宿主机就是这个网段的分配者叫做网关,懂网络的朋友都知道了,我们的路由器或者交换机的IP一般是这个IP的 【***.***.***.1】,这时就很简单了,我们的宿主机就是当前桥接网络的【***.***.***.1】。文章来源:https://www.toymoban.com/news/detail-518229.html
1、查看我当前的桥接网络
[zcsjw_use@iZ8vb3lp570ckrtrhp6f42Z docker]$ docker network ls
NETWORK ID NAME DRIVER SCOPE
965f410854ce bridge bridge local
afdb8db9805c docker_default bridge local
8a85f0b982ae docker_work3 bridge local
ca1da99cf73f host host local
9acaf4ecacea none null local
654c85f7c6c8 product_default bridge local
2、查看的桥接网络的网段
[zcsjw_use@iZ8vb3lp570ckrtrhp6f42Z docker]$
[zcsjw_use@iZ8vb3lp570ckrtrhp6f42Z docker]$ docker inspect docker_work3
[
{
"Name": "docker_work3",
"Id": "8a85f0b982aed1943756795a6023f599d05b4f071426e6ebf33d37ad7db26b02",
"Created": "2022-10-08T10:01:16.627697693+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"4c76545ed4d82ec1f848935e3d8293d838dc8b2f2bbba5d758b6cdbe201cf774": {
"Name": "prod-nacos",
"EndpointID": "bb7df3f003327aca8bfd0e19d8e8627e41e0b5cbe3eb2ca70d63ccbdba925685",
"MacAddress": "02:42:ac:12:00:08",
...................................
...................................
...................................
...................................
...................................
...................................
后面还有十几个服务就不放出来了
}
3、获得宿主机的IP后做自己的业务
"Gateway": "172.18.0.1"
收工,祝大家天天能学习到新的知识!!文章来源地址https://www.toymoban.com/news/detail-518229.html
到了这里,关于Docker容器内连接宿主机的其他服务,比如Mysql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!