Docker - 哲学 默认网络和 自定义网络 与 linux 网络类型 和 overlay2

默认网络:不指定 --nerwork 

不指定 网络 run 一个容器时,会直接使用默认的网络桥接器 (docker0)

自定义网络:指定 --nerwork  

让这两台容器互相通信 的前提 - 共享同一个网络 

关于 ip addr 显示 ens160

储存驱动 overlay != 网络驱动 overlay

我本地地址为 192.168.2.218 百度ip为  110.242.68.66,那么为什么 192.168.2.218 可以 ping 通 百度的 ip: 110.242.68.66 。他们并不在同一个网段 ,docker里面 不同的 网段的网络无法进行通信

Docker容器的网络和你的物理网络是隔离的。每个Docker容器都在自己的网络命名空间中运行,这意味着它们有自己的网络栈,包括自己的路由表。这就是为什么在Docker网络中,不同网络段的容器不能直接通信。

然而,你的物理机器(在这个例子中是你的Mac)是连接到一个路由器的,这个路由器知道如何将你的数据包路由到互联网上的其他网络。这就是为什么你的Mac可以ping通百度的IP地址,即使它们不在同一个网络段。

如果你想让Docker容器能够访问互联网,或者让不同网络的Docker容器能够通信,你有几个选项:

  1. 使用host网络模式:这将使容器共享主机的网络命名空间,但是这种模式下的容器不能使用Docker的端口映射功能。

  2. 使用bridge网络模式并手动配置端口映射:这将允许容器访问互联网,并且可以使用Docker的端口映射功能。

  3. 使用overlay网络:如果你在使用Docker Swarm,你可以创建一个overlay网络,这将允许不同主机上的容器互相通信。

  4. 使用第三方网络插件:有许多第三方Docker网络插件可以提供更复杂的网络功能。

查看容器的 网络信息

docker  exec -it myContainer  sh  cat /etc/hosts

相关推荐

  1. docker创建定义网络

    2024-03-24 16:26:02       48 阅读
  2. docker定义网桥容器的网络IP段

    2024-03-24 16:26:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 16:26:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 16:26:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 16:26:02       87 阅读
  4. Python语言-面向对象

    2024-03-24 16:26:02       96 阅读

热门阅读

  1. 数据库中什么时候使用自增id,什么时候不能使用

    2024-03-24 16:26:02       49 阅读
  2. Rust 的 Vec 排序方法汇总

    2024-03-24 16:26:02       48 阅读
  3. Spring Boot的静态资源自动配置原理

    2024-03-24 16:26:02       45 阅读
  4. es 集群开机自动启动

    2024-03-24 16:26:02       37 阅读
  5. Rust 双向链表 LinkedList 和安全删除元素的方法

    2024-03-24 16:26:02       49 阅读
  6. cloud微服务

    2024-03-24 16:26:02       46 阅读
  7. 5.79 BCC工具之tcpaccept.py解读

    2024-03-24 16:26:02       43 阅读
  8. 外部提供控制程序

    2024-03-24 16:26:02       41 阅读