Docker学习笔记 (17)

image-20210208141026215

网络模式

bridge :桥接 docker(默认,自己创建也是用bridge模式)

none :不配置网络,一般不用

host :和所主机共享网络

container :容器网络连通(用得少!局限很大)

测试

# 我们直接启动的命令 --net bridge,而这个就是我们得docker0 # bridge就是docker0 $ docker run -d -P --name tomcat01 tomcat 等价于 => docker run -d -P --name tomcat01 --net bridge tomcat # docker0,特点:默认,域名不能访问。 --link可以打通连接,但是很麻烦! # 我们可以 自定义一个网络 $ docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

image-20210208141046308

$ docker network inspect mynet;

image-20210208141125222

启动两个tomcat,再次查看网络情况

image-20210208141223106

image-20210208141236227

在自定义的网络下,服务可以互相ping通,不用使用–link

image-20210208141247236

我们自定义的网络docker当我们维护好了对应的关系,推荐我们平时这样使用网络!

好处:

redis -不同的集群使用不同的网络,保证集群是安全和健康的

mysql-不同的集群使用不同的网络,保证集群是安全和健康的

image-20210208141301603

14. 网络连通

image-20210208141311348

image-20210208141319543

# 测试两个不同的网络连通 再启动两个tomcat 使用默认网络,即docker0 $ docker run -d -P --name tomcat01 tomcat $ docker run -d -P --name tomcat02 tomcat # 此时ping不通

image-20210208141330658

# 要将tomcat01 连通 tomcat—net-01 ,连通就是将 tomcat01加到 mynet网络 # 一个容器两个ip(tomcat01)

image-20210208141341634

# 01连通 ,加入后此时,已经可以tomcat01 和 tomcat-01-net ping通了 # 02是依旧不通的

结论:假设要跨网络操作别人,就需要使用docker network connect 连通!

15. 实战:部署Redis集群

image-20210208141408804

# 创建网卡 docker network create redis --subnet 172.38.0.0/16 # 通过脚本创建六个redis配置 for port in $(seq 1 6);\ do \ mkdir -p /mydata/redis/node-${port}/conf touch /mydata/redis/node-${port}/conf/redis.conf cat << EOF >> /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 172.38.0.1${port} cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF done # 通过脚本运行六个redis for port in $(seq 1 6);\ docker run -p 637${port}:6379 -p 1667${port}:16379 --name redis-${port} \ -v /mydata/redis/node-${port}/data:/data \ -v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf docker exec -it redis-1 /bin/sh #redis默认没有bash redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxyyx.html