Docker网络模式
# 网络常用命令
# 1. 一般网络常用命令
| 命令 | 功能 | 说明 |
|---|---|---|
| ipconfig | 查看IP地址信息 | 适用于windwos |
| ifconfig | 查看IP地址信息 | 适用于linux |
| ip a | 查看IP地址信息 | 适用于linux |
| ping | 网络连通性测试 | 适用于windows&linux |
| telnet | 端口连通性测试 | 适用于windows&linux |
| traceroute | 路径探测跟踪 | 适用于linux |
| tracepath | 路径探测跟踪 | 适用于linux |
| tracert | 路径探测跟踪 | 适用于WINDOWS |
| route print | 查看路由表 | 适用于WINDOWS |
| route | 显示当前路由 | 适用于linux |
| curl | 文件传输工具 | 适用于linux |
| wget | 下载网络文件 | 适用于linux |
# 2. docker 网络常用命令
| 命令 | 功能说明 |
|---|---|
| docker network ls | 查看网络 |
| docker network inspect bridge | 查看网络源数据 |
| docker network create -d bridge mybridge | 创建一个自定义的网络mybridge |
| docker network rm mybridge | 删除mybridge网络 |
# docker的网络模式
默认情况下,
docker的网络有3种模式,分别为bridge、host和none。此外,还有container模式和自定义模式。[root@newdocker2 ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 2e4fe5fcbaa6 bridge bridge local e7428d016680 host host local ea83f49e7723 none null local [root@newdocker2 ~]#1
2
3
4
5
6一般用
bridge和host模式。
# 1. bridge 模式
Docker容器默认使用bridge模式的网络。

- 使用一个
linux bridge,默认为docker0,在宿主机上穿件一个docker0的网桥。使用veth对,一头在容器的网络namespace中,一头在docker0上。 - 该模式下
Docker Container不具有一个公有IP,因为宿主机的IP地址与veth pair的IP地址不在同一个网段内。 Docker采用NAT方式,将容器内部的服务监听的端口与宿主机的某一个端口port进行“绑定”,使得宿主机以外的世界可以主动将网络报文发送至容器内部 外界访问容器内的服务时,需要访问宿主机的IP以及宿主机的端口port。NAT 模式由于是在三层网络上的实现手段,故肯定会影响网络的传输效率。- 容器拥有独立、隔离的网络栈;让容器和宿主机以外的世界通过
NAT建立通信。
# 2. host 模式
Host 模式并没有为容器创建一个隔离的网络环境。而之所以称之为
host模式,是因为该模式下的Docker容器会和host宿主机共享同一个网络namespace,故Docker Container可以和宿主机一样,使用宿主机的eth0,实现和外界的通信。换言之,Docker Container的IP 地址即为宿主机eth0的IP 地址。
特点
- 容器的 IP 地址同
Docker host的IP 地址。 - 容器中服务的端口号不能与
Docker host上已经使用的端口号相冲突。
- 容器的 IP 地址同
下图浅色显示为
bridge模式,左侧为host模式。
# 3. none 模式
网络模式为
none,即不为Docker容器构造任何网络环境。一旦Docker容器采用了none网络模式,那么容器内部就只能使用loopback网络设备,不会再有其他的网络资源。Docker Container的none网络模式意味着不给该容器创建任何网络环境,容器只能使用127.0.0.1的本机网络。
# 4. container 模式
Container网络模式是Docker中一种较为特别的网络的模式。处于这个模式下的Docker容器会共享其他容器的网络环境,因此,至少这两个容器之间不存在网络隔离,而这两个容器又与宿主机以及除此之外其他的容器存在网络隔离。

- 这个模式指定新创建的容器和已经存在的⼀个容器共享⼀个
Network Namespace, ⽽不是和宿主机共享。 - 新创建的容器不会创建⾃⼰的⽹卡, 配置⾃⼰的
IP, ⽽是和⼀个指定的容器共享IP、 端⼝范围等。 - 两个容器除了⽹络⽅⾯, 其他的如⽂件系统、 进程列表等还是隔离的。 两个容器的进程可以通过
lo ⽹卡设备通信。
#
上次更新: 2023/12/06, 22:30:32