Docker 1.12新功能探索(10):network基础

本文探讨Docker 1.12的network特性,包括none、host、bridge模式下的container通信,并重点解析用户自定义网络,特别是bridge网络的创建与使用。通过实例展示了不同模式下的网络隔离与互联效果。
摘要由CSDN通过智能技术生成

这里写图片描述

本文将继续研究docker的network基础知识, 将通过若干简单试验进一步认识到多个container如何使用network model进行通信,以及如何自定义一个network.

none模式下的多个container

启动两个container加入 none中

[root@host31 ~]# docker run -it --network=none centos /bin/bash
[root@a2a37d0ddc0b /]#
[root@host31 ~]# docker run -it --network=none centos /bin/bash
[root@b8b7f66f1c12 /]#

启动后container的确认

[root@host31 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
b8b7f66f1c12        centos              "/bin/bash"         41 seconds ago      Up 41 seconds                           determined_visvesvaraya
a2a37d0ddc0b        centos              "/bin/bash"         54 seconds ago      Up 53 seconds                           jovial_goldstine
[root@host31 ~]#

docker network inspect none确认详细

[root@host31 ~]# docker network inspect none
[
    {
        "Name": "none",
        "Id": "a157ec9146b720cb38981fa1a22390b60c78fcd4396a1d50d979427f480799d6",
        "Scope": "local",
        "Driver": "null",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": []
        },
        "Internal": false,
        "Containers": {
            "a2a37d0ddc0b5915422ce5ec5948ef715acfe84110abed11100373c4fc89c37a": {
                "Name": "jovial_goldstine",
                "EndpointID": "f0acf4f20f924a5fe5d6754fbfb61aa458e87500f02a564736c197fb7207f43d",
                "MacAddress": "",
                "IPv4Address": "",
                "IPv6Address": ""
            },
            "b8b7f66f1c12354fe784092697c93531d2966a0dee27ce301a558ba1dfd5b975": {
                "Name": "determined_visvesvaraya",
                "EndpointID": "91e7e7e1b1a5bfe7188be69baae53b01c181978094b2f19010b949fc6ebd1527",
                "MacAddress": "",
                "IPv4Address": "",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
[root@host31 ~]#

从inspect的结果可以清楚地看到IPv4Address根本都没有被设定,基本应该只有lo的127.0.0.1,所以none的模式下多个container即使在同一个network中也无法相互之间通信。

host模式下的多个container

启动两个container加入 host中,host模式下,容器与主机共享网络Namespace,拥有与主机相同的网络设备。

[root@host31 ~]# docker run -it --network=host --name host_container1 centos /bin/bash
[root@host31 /]#
[root@host31 ~]# docker run -it --network=host --name host_container2 centos /bin/bash
[root@host31 /]#

启动后container的确认

[root@host31 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
91223e0ce984        centos              "/bin/bash"         39 seconds ago      Up 38 seconds                           host_container2
f7d361caf164        centos              "/bin/bash"         52 seconds ago      Up 52 seconds                           host_container1
[root@host31 ~]#

docker network inspect host确认详细

[root@host31 ~]# docker network inspect host
[
    {
        "Name": "host",
        "Id": "58211460fd1f3da1bbc392a43ddd2b79a8bec663620b7783cefcf910940ddcd9",
        "Scope": "local",
        "Driver": "host",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": []
        },
        "Internal": false,
        "Containers": {
            "91223e0ce984105d5dfa24260148bc0dc9254c7211d0ca6e76faf54cd9d3c42f": {
                "Name": "host_container2",
                "EndpointID": "bc0adbea4290527df3fe23d353a45ba324567de143d8b57f2dc195046cdfeee1",
                "MacAddress": "",
                "IPv4Address": "",
                "IPv6Address": ""
            },
            "f7d361caf164f67a3a5670dd9f2b826ccd2054c17989bf101a81b78480a69101": {
                "Name": "host_container1",
                "EndpointID": "06e60004d1e06
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值