Docker网络模式

参考

Docker网络模式

Host

  • 简介:
    • 容器没有自己的任何独立的网络资源(比如:容器的IP、网卡和端口),完全和宿主机共享网络空间。
    • 简单的讲,容器就像安装在电脑上的应用一样,它和宿主机共享网络资源。
  • 优点
    • 共享宿主机网络,性能最高

None

  • 简介:
    • 容器没有网络资源,即容器无法访问网络。

Bridge

  • 简介:
    • 默认模式:桥接到宿主机的Docker0网络上。

注意

  • 不同网络的容器不能相互访问。
  • 在同一个网络的容器可以相互访问。他们的关系相当于:连接同一个WIFI的手机,
  • 同一个网络的容器可以通过服务名相关访问,http://服务名:端口号。例如:http://mysql:3306,http://nginx
  • 一个容器可以同时加入多个网络。
  • 容器通过服务名查找服务时候,默认从当前容器最先加入的网络中查找。

Docker网络相关命令

  • docker network ls:查看所有网络
  • docker network --help:查看网络帮助
  • docker network connect mynetwork mycontainer:将将容器加入网络
    • --alias:指定容器别名

Docker网络的服务发现机制

  • Docker Compose创建容器时候,为这个容器注册一个DNS名称(服务名/域名/别名),同一个网络的其他服务可以通过这个DNS名称访问到这个容器。
  • 使用docker network connect加入网络后,如果这个容器没有注册DNS名称,那么新网络其他容器无法通过DNS名称访问到这个容器。