Docker网络
Docker网络
Last edited 2022-5-1
type
Post
status
Published
date
May 1, 2022
slug
summary
docker网络学习笔记
tags
Docker
category
学习思考
icon
password
URL
Photo
测试

#️⃣
容器部署 并安装ip命令
root@ubuntu /home/golowper$ docker run -d -P --name tomcat-test tomcat 27de26615c5acdfa4f61e5ff28d4f9ff090e32adef5b3feb2b1b26f764e94ce0 # 安装 ping(iputils-ping) ifconfig(net-tools) ip(iproute2) 命令 root@ubuntu /home/golowper$ docker exec -it tomcat-test apt update&apt install net-tools iputils-ping iproute2 [1] 28096 [1] + 28096 suspended (tty output) docker exec -it tomcat-test apt update Reading package lists... Done Building dependency tree Reading state information... Done net-tools is already the newest version (1.60+git20161116.90da8a0-1ubuntu1). iproute2 is already the newest version (4.15.0-2ubuntu1.3). iputils-ping is already the newest version (3:20161105-1ubuntu3). The following packages were automatically installed and are no longer required: bridge-utils linux-hwe-5.4-headers-5.4.0-104 linux-hwe-5.4-headers-5.4.0-84 ubuntu-fan Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
ip addr
notion image
#️⃣
问题:docker 如何处理容器访问的
notion image
➜ golowper docker run -d -P --name tomcat01 tomcat 查看容器内部网络地址 : ip addr root@ubuntu /home/golowper$ docker exec -it tomcat01 ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever # linux可不可以ping通容器内部 root@ubuntu /home/golowper$ ping 172.17.0.2 PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data. 64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.122 ms 64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.058 ms 64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.075 ms 64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.057 ms====
#️⃣
原理:
  1. 启动一个docker容器,本机docker会给容器分配一个ip,我们只要安装docker,就会有一个docker0网卡(桥接模式),技术:evth-pair 技术!
notion image
  1. 在启动一个,发现多了一对网卡
notion image
容器网卡都是一对一对出现的 evth-pair 就是一对的虚拟设备接口,他们是成对出现的,一端连着协议,一端彼此相连 evth-pair 充当一个桥梁,连接着各种虚拟网络设备
  1. tomcat01 和tomcat02 是否可以ping通
root@ubuntu /home/golowper$ docker exec -it tomcat01 ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 4: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever root@ubuntu /home/golowper$ docker exec -it tomcat02 ping 172.17.0.2 PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data. 64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.075 ms 64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.088 ms 64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.070 ms 可以ping通
 
总结:
###删除容器网卡消失 root@ubuntu /home/golowper$ docker stop tomcat01 tomcat01 root@ubuntu /home/golowper$ docker rm tomcat01 tomcat01 root@ubuntu /home/golowper$ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 00:0c:29:e2:75:ae brd ff:ff:ff:ff:ff:ff inet 192.168.80.133/24 brd 192.168.80.255 scope global dynamic noprefixroute ens33 valid_lft 1156sec preferred_lft 1156sec inet6 fe80::dbfb:2fa7:b8f8:e28a/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:9e:1c:bb:82 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::42:9eff:fe1c:bb82/64 scope link valid_lft forever preferred_lft forever 7: veth0137e4e@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether de:9a:60:cf:38:f9 brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet6 fe80::dc9a:60ff:fecf:38f9/64 scope link valid_lft forever preferred_lft forever
 

—link

—link解决了网络联通问题
root@ubuntu /home/golowper$ docker run -d -P --name tomcat03 --link tomcat02 tomcat root@ubuntu /home/golowper$ docker exec -it tomcat03 ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:04 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.4/16 brd 172.17.255.255 scope global eth0 valid_lft forever preferred_lft forever root@ubuntu /home/golowper$ docker exec -it tomcat02 ping 172.17.0.4 PING 172.17.0.4 (172.17.0.4) 56(84) bytes of data. 64 bytes from 172.17.0.4: icmp_seq=1 ttl=64 time=0.111 ms 64 bytes from 172.17.0.4: icmp_seq=2 ttl=64 time=0.078 ms 64 bytes from 172.17.0.4: icmp_seq=3 ttl=64 time=0.074 ms 64 bytes from 172.17.0.4: icmp_seq=4 ttl=64 time=0.073 ms
 
查看网络配置信息
root@ubuntu /home/golowper$ docker network ls NETWORK ID NAME DRIVER SCOPE f70691c37dfa bridge bridge local d89753a3f8e5 host host local aab750de38e7 none null local root@ubuntu /home/golowper$ docker network inspect f7 [ { "Name": "bridge", "Id": "f70691c37dfa4c940f9e32484fd4a7965dc33a444ba550c4a81b07a77fce645d", "Created": "2022-03-16T17:00:09.17746168-07:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.17.0.0/16", "Gateway": "172.17.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "5b66831ca4a53167dc6870dfeb8bb01d1c409e0fde7c84b93cf0225368ffe7fc": { "Name": "tomcat03", "EndpointID": "70d37fdf78200ecf58daea053962fbb64791c2ab36ada3db54341c78561fe790", "MacAddress": "02:42:ac:11:00:04", "IPv4Address": "172.17.0.4/16", "IPv6Address": "" }, "763f7de3acd78941e7a770cfe891d7307200e7bdcd48dc02a92386130ec29ca4": { "Name": "tomcat01", "EndpointID": "aeff36df6c1c5a40d9732e432d24c16ac1ae8f20987be1e8e4fca16c8c1b0635", "MacAddress": "02:42:ac:11:00:02", "IPv4Address": "172.17.0.2/16", "IPv6Address": "" }, "bfb26954d85e7439213cc8977b248c35a021ab284d0d9566ee3b910e0269c9cb": { "Name": "tomcat02", "EndpointID": "f30c12f7ae66476724858378b5f8ba083f7233351e19a9b4fd1a816e238a3245", "MacAddress": "02:42:ac:11:00:03", "IPv4Address": "172.17.0.3/16", "IPv6Address": "" } }, "Options": { "com.docker.network.bridge.default_bridge": "true", "com.docker.network.bridge.enable_icc": "true", "com.docker.network.bridge.enable_ip_masquerade": "true", "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0", "com.docker.network.bridge.name": "docker0", "com.docker.network.driver.mtu": "1500" }, "Labels": {} } ]

自定义网络

#️⃣
查看所有的docker网络
root@ubuntu /home/golowper$ docker network ls NETWORK ID NAME DRIVER SCOPE f70691c37dfa bridge bridge local d89753a3f8e5 host host local aab750de38e7 none null local
网络模式默认桥接
root@ubuntu /home/golowper$ docker network create --driver bridge --subnet 192.168.0.1/24 --gateway 192.168.0.1 mynet b44338df6a12b055e75c3ca4cde610c449f35c25c9abab63a488a7c53db089df root@ubuntu /home/golowper$ docker network ls 130 ↵ NETWORK ID NAME DRIVER SCOPE f70691c37dfa bridge bridge local d89753a3f8e5 host host local b44338df6a12 mynet bridge local aab750de38e7 none null local
创建自己网络下的容器 —net xxxx
root@ubuntu /home/golowper$ docker run -d -P --name tomcat-net-01 --net mynet tomcat df08acc74936c59e6839e63b23c7782af549fbd4f5de97a09b7568e29ae40772 root@ubuntu /home/golowper$ docker run -d -P --name tomcat-net-02 --net mynet tomcat 6d0f9fa758a3c4fd6f72e81131daae669d4c457195c1c4cc01b2fad92ae4f57c # 安装ping ifconfig ip命令 root@ubuntu /home/golowper$ docker exec -it tomcat-net-01 apt update&apt install iputils-ping net-tools iproute2 #可以联通 root@ubuntu /home/golowper$ docker exec -it tomcat-net-01 ping tomcat-net-02 PING tomcat-net-02 (192.168.0.3) 56(84) bytes of data. 64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.148 ms 64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.083 ms 64 bytes from tomcat-net-02.mynet (192.168.0.3): icmp_seq=3 ttl=64 time=0.075 ms
好处: 不同集群使用不用网络,可以保证集群的健康和安全
 

网络联通

notion image
notion image
notion image
#️⃣
docker 打通 tomcat01 和 mynet 网络
root@ubuntu /home/golowper$ docker network connect mynet tomcat01 1 ↵ root@ubuntu /home/golowper$ docker inspect mynet [ { "Name": "mynet", "Id": "b44338df6a12b055e75c3ca4cde610c449f35c25c9abab63a488a7c53db089df", "Created": "2022-03-28T08:42:13.459830145-07:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "192.168.0.1/24", "Gateway": "192.168.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "6d0f9fa758a3c4fd6f72e81131daae669d4c457195c1c4cc01b2fad92ae4f57c": { "Name": "tomcat-net-02", "EndpointID": "9e9ce94a95a4413f5b5b6653b32bf1496f49ffbb7e292dbd9f0b30e97391c75d", "MacAddress": "02:42:c0:a8:00:03", "IPv4Address": "192.168.0.3/24", "IPv6Address": "" }, "83a565b4973de0caca633b39dc906229a5d71c9e06b3150aa2ce87a2c4e0283f": { "Name": "tomcat01", "EndpointID": "7945cfdab0fd4da64655eb786f8b943efe2bdc8305edfdc65e8563d3c8da1899", "MacAddress": "02:42:c0:a8:00:04", "IPv4Address": "192.168.0.4/24", "IPv6Address": "" }, "df08acc74936c59e6839e63b23c7782af549fbd4f5de97a09b7568e29ae40772": { "Name": "tomcat-net-01", "EndpointID": "e13e24cfa0535598b8083d42776c591eaf0999729277d1636181e057013309df", "MacAddress": "02:42:c0:a8:00:02", "IPv4Address": "192.168.0.2/24", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ] root@ubuntu /home/golowper$ docker exec -it tomcat01 ping 192.168.0.2 130 ↵ PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data. 64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.254 ms 64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.084 ms # 实现一个容两个ip

实操:部署redis集群

#️⃣
删除所有容器 docker rm -f $(docker ps -aq)
root@ubuntu /home/golowper$ docker ps -a 1 ↵ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 83a565b4973d tomcat "catalina.sh run" 29 minutes ago Up 29 minutes 0.0.0.0:49162->8080/tcp, :::49162->8080/tcp tomcat01 6d0f9fa758a3 tomcat "catalina.sh run" 21 hours ago Up 21 hours 0.0.0.0:49159->8080/tcp, :::49159->8080/tcp tomcat-net-02 df08acc74936 tomcat "catalina.sh run" 21 hours ago Up 21 hours 0.0.0.0:49158->8080/tcp, :::49158->8080/tcp tomcat-net-01 root@ubuntu /home/golowper$ docker rm -f $(docker ps -aq) 83a565b4973d 6d0f9fa758a3 df08acc74936 root@ubuntu /home/golowper$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

一.创建redis网络

root@ubuntu /home/golowper$ docker network create redis --subnet 172.38.0.0/24 7f37e5060897f4ba1a8038df615bb5ec0ea7bd242b4d5d36e4228e3018ce0a4c root@ubuntu /home/golowper$ docker network ls NETWORK ID NAME DRIVER SCOPE f70691c37dfa bridge bridge local d89753a3f8e5 host host local b44338df6a12 mynet bridge local aab750de38e7 none null local 7f37e5060897 redis bridge local root@ubuntu /home/golowper$ docker network inspect redis [ { "Name": "redis", "Id": "7f37e5060897f4ba1a8038df615bb5ec0ea7bd242b4d5d36e4228e3018ce0a4c", "Created": "2022-03-29T05:40:32.072259432-07:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "172.38.0.0/24" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "Options": {}, "Labels": {} } ]

二 . 通过 shell 脚本创建redis容器

# 通过脚本创建六个redis配置文件 for port in $(seq 1 6); do mkdir -p /home/golowper/Docker/mydata/redis/node-${port}/conf touch /home/golowper/Docker/mydata/redis/node-${port}/conf/redis.conf cat << EOF >/home/golowper/Docker/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 docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port}\ -v /home/golowper/Docker/mydata/redis/node-${port}/data:/data\ -v /home/golowper/Docker/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; done

三. 创建集群

root@ubuntu /home/golowper/Docker$ docker exec -it redis-1 /bin/sh 126 ↵ /data # ls appendonly.aof nodes.conf /data # 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 >>> Performing hash slots allocation on 6 nodes... Master[0] -> Slots 0 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 Adding replica 172.38.0.15:6379 to 172.38.0.11:6379 Adding replica 172.38.0.16:6379 to 172.38.0.12:6379 Adding replica 172.38.0.14:6379 to 172.38.0.13:6379 M: 8c25fef97d1db1df567a99e9ac78d3e45c8afcf1 172.38.0.11:6379 slots:[0-5460] (5461 slots) master M: e7a1040baa4655bb0a752213fd43d68c4c45de9a 172.38.0.12:6379 slots:[5461-10922] (5462 slots) master M: 0135f1f06686af3d7fea5abfe3cb7bb08ea633b0 172.38.0.13:6379 slots:[10923-16383] (5461 slots) master S: fb4357a1f010615b31ea4349c6a4e1ba268342dc 172.38.0.14:6379 replicates 0135f1f06686af3d7fea5abfe3cb7bb08ea633b0 S: fedb803a54d3aaff7266abdc4617c84da7aec5b8 172.38.0.15:6379 replicates 8c25fef97d1db1df567a99e9ac78d3e45c8afcf1 S: 53ea669baed66d126cbfdf149199e28c96ad1d71 172.38.0.16:6379 replicates e7a1040baa4655bb0a752213fd43d68c4c45de9a Can I set the above configuration? (type 'yes' to accept): yes >>> Nodes configuration updated >>> Assign a different config epoch to each node >>> Sending CLUSTER MEET messages to join the cluster Waiting for the cluster to join .... >>> Performing Cluster Check (using node 172.38.0.11:6379) M: 8c25fef97d1db1df567a99e9ac78d3e45c8afcf1 172.38.0.11:6379 slots:[0-5460] (5461 slots) master 1 additional replica(s) M: 0135f1f06686af3d7fea5abfe3cb7bb08ea633b0 172.38.0.13:6379 slots:[10923-16383] (5461 slots) master 1 additional replica(s) S: 53ea669baed66d126cbfdf149199e28c96ad1d71 172.38.0.16:6379 slots: (0 slots) slave replicates e7a1040baa4655bb0a752213fd43d68c4c45de9a S: fb4357a1f010615b31ea4349c6a4e1ba268342dc 172.38.0.14:6379 slots: (0 slots) slave replicates 0135f1f06686af3d7fea5abfe3cb7bb08ea633b0 M: e7a1040baa4655bb0a752213fd43d68c4c45de9a 172.38.0.12:6379 slots:[5461-10922] (5462 slots) master 1 additional replica(s) S: fedb803a54d3aaff7266abdc4617c84da7aec5b8 172.38.0.15:6379 slots: (0 slots) slave replicates 8c25fef97d1db1df567a99e9ac78d3e45c8afcf1 [OK] All nodes agree about slots configuration. >>> Check for open slots... >>> Check slots coverage... [OK] All 16384 slots covered. # 测试 /data # redis-cli -c 127.0.0.1:6379> cluster info cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_ping_sent:532 cluster_stats_messages_pong_sent:529 cluster_stats_messages_sent:1061 cluster_stats_messages_ping_received:524 cluster_stats_messages_pong_received:532 cluster_stats_messages_meet_received:5 cluster_stats_messages_received:1061 127.0.0.1:6379> cluster nodes 0135f1f06686af3d7fea5abfe3cb7bb08ea633b0 172.38.0.13:6379@16379 master - 0 1648568046530 3 connected 10923-16383 53ea669baed66d126cbfdf149199e28c96ad1d71 172.38.0.16:6379@16379 slave e7a1040baa4655bb0a752213fd43d68c4c45de9a 0 1648568046000 6 connected fb4357a1f010615b31ea4349c6a4e1ba268342dc 172.38.0.14:6379@16379 slave 0135f1f06686af3d7fea5abfe3cb7bb08ea633b0 0 1648568047535 4 connected 8c25fef97d1db1df567a99e9ac78d3e45c8afcf1 172.38.0.11:6379@16379 myself,master - 0 1648568047000 1 connected 0-5460 e7a1040baa4655bb0a752213fd43d68c4c45de9a 172.38.0.12:6379@16379 master - 0 1648568045624 2 connected 5461-10922 fedb803a54d3aaff7266abdc4617c84da7aec5b8 172.38.0.15:6379@16379 slave 8c25fef97d1db1df567a99e9ac78d3e45c8afcf1 0 1648568047000 5 connected 127.0.0.1:6379> set a b -> Redirected to slot [15495] located at 172.38.0.13:6379 OK 172.38.0.13:6379> get a "b" //从3容器接收,那我停掉3 root@ubuntu /home/golowper$ docker stop redis-3 redis-3 root@ubuntu /home/golowper$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3674c63a0ab3 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 16 minutes ago Up 16 minutes 0.0.0.0:6376->6379/tcp, :::6376->6379/tcp, 0.0.0.0:16376->16379/tcp, :::16376->16379/tcp redis-6 e555f64de8b8 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 16 minutes ago Up 16 minutes 0.0.0.0:6375->6379/tcp, :::6375->6379/tcp, 0.0.0.0:16375->16379/tcp, :::16375->16379/tcp redis-5 6829c1b9d649 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 16 minutes ago Up 16 minutes 0.0.0.0:6374->6379/tcp, :::6374->6379/tcp, 0.0.0.0:16374->16379/tcp, :::16374->16379/tcp redis-4 654b9b405130 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 16 minutes ago Up 16 minutes 0.0.0.0:6372->6379/tcp, :::6372->6379/tcp, 0.0.0.0:16372->16379/tcp, :::16372->16379/tcp redis-2 b869b695cc01 redis:5.0.9-alpine3.11 "docker-entrypoint.s…" 16 minutes ago Up 16 minutes 0.0.0.0:6371->6379/tcp, :::6371->6379/tcp, 0.0.0.0:16371->16379/tcp, :::16371->16379/tcp redis-1 //进入node-1 /data # redis-cli -c 127.0.0.1:6379> get a -> Redirected to slot [15495] located at 172.38.0.14:6379 //从node-4获取数据 "b" 172.38.0.14:6379> cluster nodes 53ea669baed66d126cbfdf149199e28c96ad1d71 172.38.0.16:6379@16379 slave e7a1040baa4655bb0a752213fd43d68c4c45de9a 0 1648568213000 6 connected 8c25fef97d1db1df567a99e9ac78d3e45c8afcf1 172.38.0.11:6379@16379 master - 0 1648568213232 1 connected 0-5460 0135f1f06686af3d7fea5abfe3cb7bb08ea633b0 172.38.0.13:6379@16379 master,fail - 1648568145793 1648568145693 3 connected # node-3 fail ,node-4从slave 变成 master。 e7a1040baa4655bb0a752213fd43d68c4c45de9a 172.38.0.12:6379@16379 master - 0 1648568214240 2 connected 5461-10922 fedb803a54d3aaff7266abdc4617c84da7aec5b8 172.38.0.15:6379@16379 slave 8c25fef97d1db1df567a99e9ac78d3e45c8afcf1 0 1648568213000 5 connected fb4357a1f010615b31ea4349c6a4e1ba268342dc 172.38.0.14:6379@16379 myself,master - 0 1648568213000 7 connected 10923-16383
 
 
  • Docker
  • PPSUC_CTF_wp(过时)绕过ppsuc校园网防火墙—纯享版