docker 07 网络

  1. bridge
  2. host
  3. none
  4. container

四种网络模式的选择

  • bridge
  • host
  • none
  • container

bridge

这是 Docker 默认使用的模式

Docker Daemon 启动时默认会创建 Docker0 这个网桥, 网段为 172.17.0.0/16 , 宿主机 IP 为 172.17.0.1 , 作为这个虚拟子网的 网关 。

创建网络

docker network create --driver bridge --subnet 172.25.0.0/16 <network_name>
docker network ls
docker network inspect <network_name>

容器如何加入这个网络

docker run ... ... --net=<network_name> --ip <ip> ....
  • ip:取值范围是 –subnet 定义区间里可使用的ip

host

容器 共享 宿主机 的网络 ( IP 和 端口 ) 。使用 Docker 有相当一部分目的是为了隔离 宿主机 和 容器 , 使用 host 模式就违背了这一点, 不是很好。另外有很多 镜像 如 tomcat 默认监听 8080 端口的, 使用 host 模式后开多个 容器 就会造成端口冲突, 而不得不修改 tomcat 的监听端口。

当使用 host 模式网络时,容器实际上继承了宿主机的 IP 地址。该模式比 bridge 模式更快(因为没有路由开销),但是它将容器直接暴露在公共网络中,是有安全隐患的

none

这种模式下, 创建的 容器 拥有自己的 Network Namespace, 但是没有任何网络配置, 所以默认是没有网络的, 可以自己对 容器 的 网卡、IP 进行配置, 适合用来配置比默认设置更加复杂的网络环境。

container

类似于 host 模式, 不过这种模式是共享已存在的 容器 使用的网络。


转载请注明来源。 欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。 可以在下面评论区评论,也可以邮件至 sharlot2050@foxmail.com。

文章标题:docker 07 网络

字数:396

本文作者:夏来风

发布时间:2020-12-06, 14:52:42

原始链接:http://www.demo1024.com/blog/docker-network/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。