Docker 的网络模式

  Bridge模式

Bridge模式

Bridge模式的结构图

演示:
$ docker run -tid --net=bridge --name docker_bri1 
ubuntu-base:v3
docker run -tid --net=bridge --name docker_bri2 
ubuntu-base:v3
$ brctl show
$ docker exec -ti docker_bri1 /bin/bash
$ ifconfig –a
$ route –n
快速开发平台如果你之前有 Docker 使用经验,你可能已经习惯了使用 --link 参数来使容器互联。
随着 Docker 网络的完善,强烈建议大家将容器加入自定义的 Docker 网络来连接多个容器,而不是使

用 --link 参数。

创建新的Docker网络


这样,busybox1 容器和 busybox2 容器建立了互联关系。
如果你有多个容器之间需要互相连接,推荐使用 Docker Compose 。

Host 模式

如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace ,而是
和宿主机共用一个 Network Namespace。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使
用宿主机的 IP 和端?。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。
Host模式如下图所示:
Host模式结构图
演示:
$ docker run -tid --net=host --name docker_host1 ubuntu-base:v3
$ docker run -tid --net=host --name docker_host2 ubuntu-base:v3

$ docker exec -ti docker_host1 /bin/bash
$ docker exec -ti docker_host1 /bin/bash

$ ifconfig –a
$ route –n
Container 模式
Container模式结构图
演示:
$ docker run -tid --net=container:docker_bri1  
--name dockercon1 ubuntu-base:v3

$ docker exec -ti docker_con1 /bin/bash
$ docker exec -ti docker_bri1 /bin/bash

$ ifconfig –a
$ route -n

None模式

使用 none 模式,Docker 容器拥有自己的 Network Namespace,但是,并不为Docker 容器进行任何
网络配置。也就是说,这个 Docker 容器没有网卡、IP、路由等信息。需要我们自己为 Docker 容器添
加网卡、配置 IP 等。 None模式示意图
None模式示意图
演示:
$ docker run -tid --net=none --name 
docker_non1 ubuntu-base:v3
$ docker exec -ti docker_non1 /bin/bash
$ ifconfig –a
$ route -n

本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
转载请注明:文章转载自:快速开发框架 » Docker 的网络模式
本文标题: Docker 的网络模式

原文地址:https://www.cnblogs.com/frfwef/p/14572854.html