ocker网络

docker网络

docker网络简单理解

安装了docker就会出现docker0这样一个网卡,在默认情况下,创建容器都会以docker0在路由,比如两个容器之间可以ping通,都是先经过docker0在转发过去。

网卡如图
在这里插入图片描述

在不指定网络的情况下,都是docker0路由的,dockerr容器会给我们默认的分配一个ip他的范围

255.255.0.1/16

它的域为16,这样的话默认的可用地址就是255*255减去本地回环地址减去最终地址

思考问题:如果编写一个微服务,databaseUrl=ip,项目重启。数据库ip就换了,这个问题如何解决

–link

通过这个命令可以通过容器名字进行ping通,也就是说,容器ip变了也没有问题,一样可以ping通

docker run -d -P --name tomcat03 --link tomcat01 tomcat:9

但是这样只可以在tomcat03内通过容器名字ping tomcat01,反之不行。

这样能访问的原因,在创建tomcat03的时候直接把tomcat01写进了网络配置文件

在这里插入图片描述

但是这只是简单的网络测试,不建议使用。

自定网络

默认情况是桥接模式,子网掩码必须配 网关也需要指定,这样我们就创建了自己的docker网络

docker network create --driver bridge -- 192.168.0.0/16 \
--gateway 192.168.0.1 xunet

指定网络启动容器

docker run -d --name tomcat01 -P --network xunet diytomcat
docker run -d --name tomcat02 -P --network xunet diytomcat

自己创建的网络是十分健全的docker已经帮我们维护好了关系,直接ping容器名字是没有问题的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

好处:

比如在部署集群的时候,有redis集群和mysql集群,使用不同的网络,可以保证集群的安全

试想这样一个问题,如果我们使用一个默认的网络启动一个容器,再用我们自定义的网络启动一个容器,这样的话这两个容器网段是不同的,这样的话,如何使得这两个容器进行通信?

测试:

我们再启动一个tomcat03使用默认的网路,使用docker的网络联通命令就可以进行连通

docker network connect xunet tomcat03

ping tomcat03测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g3jt940x-1653152265833)(file://C:\Users\Xu\AppData\Roaming\marktext\images\2022-05-21-17-46-17-image.png?msec=1653126377917)]

测试成功

docker:部署redis集群

首先创建一个redis的网络

docker network create redis --subnet 192.169.0.0/16 --gateway 192.169.0.1

使用shell脚本创建

for port in $(seq 1 6); \
do \
mkdir -p /home/mydata/redis/node-${port}/conf
touch /home/mydata/redis/node-${port}/conf/redis.conf
cat <<EOF>>/home/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.169.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

创建容器

for port in $(seq 1 6); \
do
docker run -p 572${port}:6379 -p 573${port}:16379 --name redis-${port} \
-v /home/mydata/redis/node-${port}/data:/data \
-v /home/mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --network redis --ip 192.169.0.1${port} redis redis-server /etc/redis/redis.conf
done

创建集群

redis-cli --cluster create 192.169.0.11:6379 192.169.0.12:6379 192.169.0.13:6379 192.169.0.14:6379 192.169.0.15:6379 192.169.0.16:6379 --cluster-replicas 1

这样的话配置了3个主机3个从机

在主机中删除数据从机会替代主机

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小徐404

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值