Docker补充知识点--自定义网络实现直连容器

前面介绍docker镜像的秘密这篇知识点的时候,https://blog.youkuaiyun.com/dudadudadd/article/details/128200522,提到了docker容器也有属于自己的IP的概念,默认的Docker容器采用的是bridge网络模式。本篇介绍如何修改容器的网络策略。

首先我们要知道,docker容器的网络配置自带了三种模式,除了默认的bridge模式之外,还有其他的,我们可以用命令查看当前docker有几种网络模式。

[root@hdp3 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
e8e4f692235d        bridge              bridge              local
4d563e307658        host                host                local
7bfee5177ee6        none                null                local

上面的查询主要是为了让大家有docker网络模式这个概念。我们自定义网络,不用自带的,因为自带的bridge,相当于VMware的NAT,可出于某种不可描述的原因,导致它和不指定网络模式创建的容器中的bridge模式存在DNS有无的差异,就是说上面通过命令查出来的bridge网络模式是有DNS的,而你不指定网络模式创建的容器中所使用的bridge网络模式是没有DNS功能的,这点就很诡异。host模式,很少使用,它是指容器完全没有自己的网络配置,直接使用宿主机的网卡,这种网络模式如果你只是使用容器做IP映射可以用一用,其他更灵活的使用方式根本不考虑这种网络模式。最后一个nono是预留的空网络无法使用。

而我们自定义网络模式的时候用的是macvlan模块(DRIVER),这是docker后期版本中提出的一种新型的网络模块,可以提供更加灵活的网络。

配置的时候,你需要先运行下面的命令,创建一个网络模式。注意网络策略用宿主机的。注意,从实现上来说,完全可以使用自定义网络模式,配置其他网段,但是那样就和bridge一样的效果了,没有再自定义的意义

docker network create  clu --driver macvlan --subnet=192.168.88.0/24 --gateway=192.168.88.2 -o macvlan_mode=bridge -o parent=ens33

clu:这个是你的网络模式名字,你可以自定义
--driver macvlan:使用macvlan网络模块
--gateway:该网络模式使用的网关
-o:是详情配置,上面命令是指基于bridge模式,并继承宿主机的网卡,ens33是你宿主机的网卡名
--subnet:是最特别的一个配置,它的值要求是CIDR格式,最后我再说怎么写这个配置

当你创建好了网络模式,你就可以查询到了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值