Docker - 网络使用详解1(原生网络介绍:none、host、bridge)

作者: hangge 发布时间: 2019-09-06 浏览: 511 次 编辑

一、原生网络介绍

1,查看网络

Docker 安装时会自动在 host 上创建三个网络:nonehostbridge。我们可以使用如下命令进行查看:

1
docker network ls

原文:Docker - 网络使用详解1(原生网络介绍:none、host、bridge)

2,none 网络

(1)none 网络就是什么都没有的网络,一些对安全性有求高并且不需要联网的应用可以使用 none 网络。

  • 比如:某个容器的唯一用途是生成随机密码,就可以放到 none 网络中避免密码被窃取。

(2)我们可以使用 --network=none 来指定容器使用 none 网络。

1
docker run -it --network=none busybox

原文:Docker - 网络使用详解1(原生网络介绍:none、host、bridge)

3, host 网络

(1)连接到 host 网络的容器共享 Docker host 网络栈,容器的网络配置与 host 完全一样。相当于主机中套了一个与外部一模一样的容器,可以直接通过 host 的 ip 地址来访问该容器。

(2)host 网络主要使用如下几个场景:

  • 如果容器对网络传输效率有较高要求,可以选择 host 网络。因为 host 网络最大的好处就是性能。

  • Docker host 的另一个用途是让容器可以直接配置 host 网络,比如某些跨 host 的网络解决方案,其本身也是以容器方式运行的,这些方案需要对网络进行配置,比如管理 iptables


(3)host 网络不便之处就是牺牲一些灵活性,比如要考虑端口冲突问题,Docker host 上已经使用的端口就不能再用了。

(4)我们可以使用 --network=host 指定使用 host 网络。

1
docker run -it --network=host busybox

原文:Docker - 网络使用详解1(原生网络介绍:none、host、bridge)


4,bridge 网络

(1)如果我们运行容器时不指定 --network,那么创建的容器都会挂到 bridge 网络上,可以通过如下命令查看 bridge 网络的配置信息:

1
docker network inspect bridge

可以看到 bridge 网络的网关是 172.17.0.1,子网是 172.17.0.0/16。容器创建时,docker 会自动从 172.17.0.0/16 中分配一个 IP,这里的 16 位掩码保证有足够的 IP 可以供容器使用。

原文:Docker - 网络使用详解1(原生网络介绍:none、host、bridge)


(2)不指定 --network 则使用 bridge 网络:

1
docker run -it busybox

原文:Docker - 网络使用详解1(原生网络介绍:none、host、bridge)


原文链接:https://www.hangge.com/blog/cache/detail_2474.html