Docker之容器网络

容器网络

一、为什么要学习容器网络?

如果要使用Docker来搭建redis集群或者别的集群需要制定Docker容器的IP地址,但是每次容器重启都会修改容器的IP地址,所以需要了解如何设置容器的网络。

二、Docker默认网络

Docker安装后,会默认创建三种网络类型,可使用如下命令来查看:

docker network ls

查看Docker默认网络配置

在启动容器时使用--network bridge 制定网络类型,bridge为桥接网络

默认情况下启动的Docker容器,都是使用briage,Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就会导致重启时,Docker的IP地址就变了。

三、Docker网络模型

Docker网络模型 从上面的网络模型可以看出,容器从原理上是可以与宿主机乃至外界的其他机器通信的。同一宿主机上,容器之间都是连接到Docker0这个网桥上的,它可以作为虚拟交换机使容器可以相互通信。然而,由于宿主机的IP地址与容器的IP地址均不在同一网段,不足以使宿主机以外的网络主动发现容器的存在。为了使外界可以访问容器中的进程,Docker采用率端口绑定的方式,也就是通过iptables的NAT,将宿主机上的端口号流量转发到容器内的端口上。 在宿主机上,可以通过iptables -t nat -L -n,查到一条DNAT规则: briage模式的容器与外界通信时,必定会占用宿主机的端口,从而与宿主机竞争端口资源,对宿主机端口的管理会是一个比较大的问题。同时,由于容器与外界通信是基于三层以上iptables NAT,性能和消耗上的耗损是可以预见的

四、自定义容器网络

因为默认的网络不能指定固定的地址,所以我们将创建自定义网络,并指定网段:192.168.1.0/24并命名为mynetwork,指令如下:

docker network create --subnet=192.168.1.0/24 mynetwork

###五、使用自定义网络

docker run -itd --name nginx --net mynetwork -p 80:80 --ip 192.168.1.2 nginx

	-d: 后台运行容器,并返回容器ID;
	-i: 以交互模式运行容器,通常与 -t 同时使用;
	-p: 端口映射,格式为:主机(宿主)端口:容器端口
	-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
	-V: 为容器挂载目录,比如 /usr/docker/data:/data 前者为数宿主机目录后者为容器内目录
	--ip: 为容器制定一个固定的ip
	--net: 指定网络模式

创建nginx镜像

六、查看容器IP地址

docker network inspect mynetwork

nginx-network

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值