docker间通信_自定义桥接

查看docker默认的桥接

[root@asimov ~]# docker  network  inspect  bridge
[
    {
        "Name": "bridge",
        "Id": "2a7643b421600e6a8edaedb8310d159e55c14641f0085fac16a7107bfd504dc3",
        "Created": "2020-04-16T11:18:54.976359251+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",    # bridge子网
                    "Gateway": "172.18.0.1"       #  bridge网关
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "24e4e4c517b0454d548b575280965cec63e83cae92b1f9cf4ca3a5b39210785f": {
                "Name": "asimov_web",      #  web服务器
                "EndpointID": "e9a9e73e18ef5bc1745e278b274197db154b36ff7d616b634918c05d90a5d972",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            },
            "61c1a2f929134397c13e60676b9cced770f10b4bf0e9f0670ce567cfe8710897": {
                "Name": "blog",    #  web服务器
                "EndpointID": "957627a920fa0b539385c45fe500cb3df863696826b8cd589972d669ab819b9e",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            },
            "7b962746a9407faefe40f0f3744c81a0d3b1e301adcc69f561e41a33785d4329": {
                "Name": "mysqlblog",  #  数据库
                "EndpointID": "8cbf8477ac703ad600c41cd8fefe6fcb2dc9409deb8ea18653512aa83289f12f",
                "MacAddress": "02:42:ac:12:00:04",
                "IPv4Address": "172.18.0.4/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

自定义桥接:用户自定义bridge在容器之间提供了自动DNS解析

创建一个名为blog-net的桥接

docker  network   create  blog-net

将web服务器和mysql添加到blog-net桥接中

[root@asimov ~]# docker  network  connect  blog-net  blog
[root@asimov ~]# docker  network  connect  blog-net  mysqlblog

查看 blog-net桥接

[root@asimov ~]# docker  network  inspect blog-net
[
    {
        "Name": "blog-net",
        "Id": "cae98b4f4bea7981e1f178c74c4a6c692f92cf23e731d00a4b06311fb8a300e3",
        "Created": "2020-04-17T16:15:30.168962176+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.19.0.0/16",   # blog-net 子网
                    "Gateway": "172.19.0.1"      # blog-net网关
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "61c1a2f929134397c13e60676b9cced770f10b4bf0e9f0670ce567cfe8710897": {
                "Name": "blog",     #  blog web服务器
                "EndpointID": "988682bf356d1546f1f4fffb5d5a24badbc6c05eb374fd9dce3a1a6973ce5394",
                "MacAddress": "02:42:ac:13:00:02",
                "IPv4Address": "172.19.0.2/16",
                "IPv6Address": ""
            },
            "7b962746a9407faefe40f0f3744c81a0d3b1e301adcc69f561e41a33785d4329": {
                "Name": "mysqlblog",   #  mysqlblog数据库
                "EndpointID": "7ada87e8ee339d87e0e744aba95fe3f72d517899e10a7ffd7919aab0aa152d35",
                "MacAddress": "02:42:ac:13:00:03",
                "IPv4Address": "172.19.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

进入 blog容器

[root@asimov ~]# docker  exec  -it  blog  /bin/bash

通过容器名ping mysqlblog(和blog容器在同一自定义桥接中)

[root@61c1a2f92913 ~]# ping  mysqlblog
PING mysqlblog (172.19.0.3) 56(84) bytes of data.
64 bytes from mysqlblog.blog-net (172.19.0.3): icmp_seq=1 ttl=64 time=0.110 ms
64 bytes from mysqlblog.blog-net (172.19.0.3): icmp_seq=2 ttl=64 time=0.071 ms
64 bytes from mysqlblog.blog-net (172.19.0.3): icmp_seq=3 ttl=64 

通过容器名ping asimov_web(在默认桥接中
默认桥接只能通过IP互连

[root@61c1a2f92913 ~]# ping   asimov_web
ping: asimov_web: Name or service not known

将容器与默认桥接的连接断开

[root@asimov ~]# docker network disconnect bridge  blog
[root@asimov ~]# docker network disconnect bridge  mysqlblog

查看容器此时只有web服务端口暴露在外部

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
54fc41b8a394        mariadb             "docker-entrypoint.s…"   11 minutes ago      Up 11 minutes       3306/tcp                 mysqlblog
61c1a2f92913        centos:7            "/bin/bash"              2 days ago          Up 30 hours         0.0.0.0:3333->8080/tcp   blog
24e4e4c517b0        centos:7            "/bin/bash"              4 weeks ago         Up 30 hours         0.0.0.0:3000->80/tcp     asimov_web

配web服务器django中mysql连接

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '',
        'USER': '',
        'PASSWORD': '',
        'HOST': 'mysqlblog',   # 容器名
        'PORT': '3306'
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值