docker:docker的网络如何与宿主机合作的呢?

本文详细解析Docker容器的四种网络模式(host、container、none和bridge),并教你如何提升容器网络速度,如yolov3下载效率。通过实例和网络 namespaces 解释,助你快速掌握容器网络配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文针对 的 是 docker 新手,让他理解 docker 容器的网络是什么概貌;

并且最后能知道 ,如何 让 容器链接到外部网络

因为 我在 跑 docker 的 yolo v3 的时候,下载数据到 docker 里面 很慢

image-20211020162405057

本文参考了:

Docker网络详解——原理篇

笔记

一共有 四种 container 的 网络模式,

我们一个一个看

host 模式

首先知道:

namespace 用于隔离资源,比如

  • network namespace
  • PID namespace
  • mount namespace

然后知道:

host 模式就是 : 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口

container 模式

和一个指定的容器共享IP、端口范围等

两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。

两个容器的进程可以通过lo网卡设备通信

None 模式

该模式将容器放置在它自己的网络栈中,但是并不进行任何配置。实际上,该模式关闭了容器的网络功能,在以下两种情况下是有用的:容器并不需要网络(例如只需要写磁盘卷的批处理任务)。

Bridge模式

相当于Vmware中的Nat模式,容器使用独立network Namespace,并连接到docker0虚拟网卡(默认模式)。通过docker0网桥以及Iptables nat表配置与宿主机通信;bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上

如果我们有两个 container ,那么 图示如下:

image-20211020164007406

原文作者的图示如下:

image-20211020164119012

我们在 主机 使用 ifconfig 就可以 看到 这个 docker0 的虚拟网卡

image-20211020163805636
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值