Docker网络

基本概念

是什么?

是docker对容器网络隔离的一项技术,提供了多种不同的模式供用户使用,选择不同的网络模式来实现容器网络的互通以及彻底的隔离。

为什么需要?

  1. 实现容器间的网络隔离
  2. 实现部分容器之间的网络共享
  3. 管理多个子网下容器的IP

能干什么

  1. 提供了多种模式,可以定制化的为每个容器置顶不同的网络
  2. 自定义网络模式,划分不同的子网以及网关、dns等配置
  3. 网络互通
  • 实现不同子网之间的网络互通
  • 基于容器名(主机名)的方式在网络内访问

网络模式

bridge(桥接)

img
在主机中创建一个叫docker0的网桥,在docker0基础之上创建一对虚拟网卡。有一半在主机上,一半在容器内
img
bridge模式默认不能域名解析
img
加--link参数实现域名解析
img
img

host(主机)

容器不再拥有自己的网络空间,而是直接与主机共享网络空间,那么基于该模式创建的容器对应的ip实际就是与主机同一个子网,同一个网段。
img

none

Docker 会拥有自己的网络空间,不与主机共享,在这个网络模式下的容器不会被分配网卡、IP、路由等相关信息。
特点:完全隔离,与外部任何机器都无网络访问,只有自己的本地网络127.0.0.1
img

container

不会创建自己的网络空间,而是与其它容器共享网络空间,直接使用指定容器的ip或者端口等。
img

自定义(推荐)

不使用docker自带的网络模式,而是自己定制化自己特有的网络模式。
命令:

docker network COMMAND

img
img

跨容器网络通信

img

  1. 创建两个不同网络模式的容器,发现无法直接通信
    img
  2. 使用connect连接两个网络
    img
posted @ 2023-05-17 22:16  小肚腩吖  阅读(6)  评论(0编辑  收藏  举报