Docker容器内连接宿主机的其他服务,比如Mysql

Posted 悟能的师兄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker容器内连接宿主机的其他服务,比如Mysql相关的知识,希望对你有一定的参考价值。

通过上一篇文章,我们可以解决同一个容器内的通讯问题,大家使用同一个桥接网络的方案是最简便的,但是我们的容器需要访问宿主机怎么办 ?

现实的场景,我们一般都是微服务全部部署到了容器内,但是像数据库这种极其需要稳定性的功能,我们是需要部署到宿主机上面的,别问我为什么不买云数据库,问就是穷。其实要解决这个问题很简单,只需要我们指导桥接网络的原理。桥接网络相当于是宿主机当成的交换机主机,然后新创建的了一个网段,而宿主机就是这个网段的分配者叫做网关,懂网络的朋友都知道了,我们的路由器或者交换机的IP一般是这个IP的 【***.***.***.1】,这时就很简单了,我们的宿主机就是当前桥接网络的【***.***.***.1】。

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"

收工,祝大家天天能学习到新的知识!!

以上是关于Docker容器内连接宿主机的其他服务,比如Mysql的主要内容,如果未能解决你的问题,请参考以下文章

Docker容器内连接宿主机的其他服务,比如Mysql

配置远程连接容器内镜像(映射容器内系统的22端口到宿主机上)

docker容器内无法访问其他服务器

docker容器内无法访问其他服务器

docker容器内无法访问其他服务器

docker容器内无法访问其他服务器