docker容器ip分配问题


docker容器是默认绑定docker0,然后动态分配IP的,但是这种默认方式存在几个问题:


问题1:docker容器的docker0网段IP在各服务器在路由上不是能够互相通信的,那么会导致在各服务器上的容器内的应用不能互相通信。

问题2:docker容器的docker0网段IP在各服务的IP网段是相同的,那么会导致各服务器上的容器分配的IP重复。


最好的方案是--------自定义创建指定网段


常见命令:

docker network create   创建
docker network connect  连接
docker network ls   查看所有
docker network rm   删除
route 路由

创建自定义docker局域网络

docker network create myredis

查看网络信息:docker network inspect myredis
docker容器ip分配问题_第1张图片
在安装Docker Engine时会自动创建一个默认的bridge网络docker0。此外,还可以创建自己的bridge网络或overlay网络。

bridge网络依附于运行Docker Engine的单台主机上,而overlay网络能够覆盖运行各自Docker Engine的多主机环境中。

但是创建一个overlay网络就需要一些前提条件(具体操作请参考Docker容器网络相关内容):

  • key-value store(Engine支持Consul、Etcd和ZooKeeper等分布式存储的key-value store)
  • 集群中所有主机已经连接到key-value store
  • swarm集群中每个主机都配置了下面的daemon参数
> - –cluster-store
> - –cluster-store-opt
> - –cluster-advertise

然后创建overlay网络: 创建网络时,使用参数-d指定驱动类型为overlay
docker network create -d overlay mytest

就使用–subnet选项创建子网而言,bridge网络只能指定一个子网,而overlay网络支持多个子网。

docker network create -d bridge --subnet 162.25.0.0/16 slave1
docker network create -d bridge --subnet 162.26.0.0/16 sentinel-2

docker容器ip分配问题_第2张图片

docker容器ip分配问题_第3张图片
附赠两文章:
docker network
docker network详解

你可能感兴趣的:(docker,docker,tcp/ip,容器)