本文针对 的 是 docker 新手,让他理解 docker 容器的网络是什么概貌;
并且最后能知道 ,如何 让 容器链接到外部网络
因为 我在 跑 docker 的 yolo v3 的时候,下载数据到 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 ,那么 图示如下:

原文作者的图示如下:

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