docker的四种网络方式

docker网络配置

这里写图片描述

当 Docker daemon 启动时需要做以下操作:

  • creates the docker0 bridge if not present
  • searches for an IP address range which doesn’t overlap with an existing route
  • picks an IP in the selected range
  • assigns this IP to the docker0 bridge

docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:

  • bridge模式:使用–net =bridge指定,默认设置;
  • host模式:使用–net =host指定;
  • none模式:使用–net =none指定;
  • container模式:使用–net =container:NAMEorID指定。

1.bridge模式
这里写图片描述
bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace、设置IP等,并将并将一个主机上的Docker容器连接到一个虚拟网桥上。Docker 在启动时会创建一个虚拟网桥 docker0,默认地址为 172.17.0.1/16, 容器启动后都会被桥接到 docker0 上,并自动分配到一个 IP 地址。
这里写图片描述


[root@18 ns]# brctl show docker0
bridge name bridge id       STP enabled interfaces
docker0     8000.0242813049e4   no      veth81deaa7
                            vethc7fa207
[root@18 Desktop]# docker run -it --rm --name vm1 ubuntu bash

[root@18 ns]# brctl show docker0
bridge name bridge id       STP enabled interfaces
docker0     8000.0242813049e4   no      veth81deaa7

2.host模式
如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
3.none模式
在none模式下,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。
使用–net =none模式启动容器:
4.container模式
这个模式指定新创建的容器和已经存在的一个容器共享一个Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信。
使用–net =container模式启动容器:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值