Docker教程(三) - Docker 网络(上)- 桥接 Bridge

本文章翻译自Docker的官方教程,有兴趣的同学可以上Docker官网进行play-with-docker学习。Docker的安装教程请参考这里(未定义)

本文翻译自Docker官方教程Doing More With Docker Images,并作出一定的修改及删减以加快上手速度。

网络驱动程序

网络驱动程序说明
bridge默认的网络驱动程序。通常用于当你的应用程序运行在一个需要通信的,独立容器(standalone container)中。
host对于独立容器,删除容器和 Docker host 之间的隔离,并直接使用主机的网络
overlay叠加网络可以将多个 Docker 的守护进程连接在一起,并使用群服务来与他们通信
macvlan允许你将MAC地址分配给容器,使其显示为网络上的物理设备。这样 Docker 守护进程可以通过MAC地址将流量路由到容器。一些比较老的应用程序,希望可以直接连接到物理网络,而不是通过 Docker host 来路由,这时,通常使用这种驱动。
none关闭容器的所有网络,通常用于需要使用自定义网络驱动的时候。

桥接网络(bridge)的使用

可以通过自动设置自定义设置的方式来使用桥接网络。但是,如果是用在产品上的话,建议使用自定义设置的方式。

使用默认的 bridge 网络

在这个例子中,我们使用两个不同的debian容器来演示他们是怎样通过网络进行通信的。

  1. 启动一个终端,使用docker network ls指令来列出现在所有的网络。如果你未曾增加过其他网络,你会看到如下信息。
    在这里插入图片描述

    docker 可能需要 sudo 权限

    这里你可以看见3个网络bridgehostnone。其中hostnone并不是完整的网络,这个会在后面的文章解释。在这个例子中,我们将会将两个容器连接到这里列出的bridge网络。

  2. 创建两个容器。注意创建容器的时候 ,使用-dit选项
    * -d,分离模式,后台运行
    * -i,交互模式
    * -t,使用TTY

    $ docker run -dit --name debian1 debian bash
    $ docker run -dit --name debian2 debian bash
    

    然后查看一下新建的两个容器:
    在这里插入图片描述

  3. 监视一下bridge这个网络,看看现在有哪些容器连接到这个网络上
    在这里插入图片描述
    可以看到debian1debian2都连接到这个bridge网络中,他们的 ip 地址分别为172.17.0.2172.17.0.3

  4. 现在试一下通信功能。先进入容器debian1

    $ docker attach debian1
    

    查看一下网络配置
    在这里插入图片描述 这里可以看到eth0的 ip 地址就是刚才的172.17.0.2

    然后尝试 ping 一下百度,成功表示容器能够正常连上网络。

    $ ping -c 2 表示尝试 ping 2次

    在这里插入图片描述

    再 ping 一下debian2的 ip 地址。成功说明两个容器debian1debian2可以通过网络进行通信,因为它们都桥接到 Docker 主机上。

    在这里插入图片描述

  5. 测试完成,关闭创建的两个容器。

    $ docker container stop debian1 debian2
    $ docker container rm debian1 debian2
    

使用自定义 bridge 网络

在这个例子中,我们会创建一个自定义网络,并创建3个容器,容器的连接情况如下:

容器默认bridge网络自定义debian-net网络
debian1-Y
debian2-Y
debian3Y-
  1. 首先,创建自定义网络debian-net, 然后在查看以下当前 docker 的网络。

    $ docker network create --driver bridge debian-net
    $ docker network ls
    

    在这里插入图片描述
    如图可见,网络debian-net创建成功。

  2. 按照上面的容器网络连接表, 分别连接3个容器

    $ docker run -dit --name debian1 --network debian-net debian bash
    $ docker run -dit --name debian2 --network debian-net debian bash
    $ docker run -dit --name debian3 --network bridge debian bash
    
  3. 查看一下网络bridgedebian-net的连接情况

    $ docker network inspect bridge
    $ docker network inspect debian-network
    

    在这里插入图片描述 从上图可见容器debian3已经连接到网络bridge
    在这里插入图片描述 而容器debian1debian2则连接到网络debian-net

  4. 进入容器debian1并测试连接情况

$ docker attach debian1		# 进入容器 debian1

References:

  1. Networking with standalone containers”. Docker docs. Docker, Inc.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种基于容器的虚拟化技术,它提供了一种轻量级的容器化解决方案,可以将应用程序及其依赖项打包到一个可移植的容器中,以便在任何地方运行。在Docker中,容器之间的通信是通过网络实现的,在本文中,我们将详细介绍Docker中的网络通信。 Docker中的网络类型 Docker提供了四种不同类型的网络,分别是: 1. 桥接网络Bridge Network):桥接网络Docker的默认网络,它允许容器之间相互通信,并且可以与主机通信。在桥接网络中,每个容器都有一个独立的IP地址,并且可以通过容器名称或IP地址进行访问。 2. 主机网络(Host Network):主机网络容器直接连接到主机网络上,容器与主机共享同一个网络接口和IP地址,因此可以与主机网络上的其他设备进行通信。 3. 网络绑定(None Network):网络绑定不为容器配置任何网络,这意味着容器无法通过网络与外界进行通信。通常,这种网络类型用于测试和调试容器应用程序。 4. Overlay网络(Overlay Network):Overlay网络用于跨主机容器之间的通信。它允许在多个主机上运行分布式应用程序,并提供了自动发现和负载均衡的功能。 Docker网络配置 在Docker中,可以使用docker network命令来管理网络。可以使用以下命令创建一个新的桥接网络: ``` docker network create my-network ``` 可以通过以下命令将容器添加到网络中: ``` docker run --name my-container --network my-network my-image ``` 在此命令中,--network选项指定要将容器添加到的网络名称。 可以使用以下命令列出所有可用的网络: ``` docker network ls ``` 可以使用以下命令查看特定网络的详细信息: ``` docker network inspect my-network ``` 在Docker中,还可以使用--link选项将一个容器链接到另一个容器。这将创建一个虚拟网络接口,允许容器之间进行通信。以下命令将容器my-container链接到容器my-other-container: ``` docker run --name my-container --link my-other-container my-image ``` 在此命令中,--link选项指定要链接的容器名称。 总结 在Docker中,容器之间的通信是通过网络实现的。Docker提供了四种不同类型的网络,包括桥接网络、主机网络网络绑定和Overlay网络。可以使用docker network命令来管理网络,可以使用--link选项将一个容器链接到另一个容器

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值