Docker 网络

Posted on 2022-06-04 13:20  坏小子61  阅读(35)  评论(0)    收藏  举报

查看所有的docker网络

docker network ls

 

 

网络模式:

bridge: 桥接(默认)

none:  不配置网络

host: 和宿主机共享网络

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

 


 

 

--net bridge 就是docker0

两个命令是相同的

docker -d -P --name tomcat01 tomcat

docker -d -P --name tomcat01 --net bridge tomcat

 

docker0 默认,域名不能访问  --link(/ect/host 配置) 可以打通链接

 


 

 

自定义网络:

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

 

 

 

 

 

docker run -d -P --name tomcat-net-01 --net mynet tomcat

docker run -d -P --name tomcat-net-02 --net mynet tomcat

 

 

docker network inspect mynet

 

 自定义的网络中出现了两个容器

 

 

自定义网络可以通过容器名字ping通

 


 

实战Redis集群:

1、创建自定义网络

  docker network create redis --subnet 172.38.0.0/16

2、通过脚本创建六个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:

  docker run -p 6371:6379 -p 16371:16379 --name redis-1 \

  -v /mydata/redis/node-1/data:/data \

  -v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf \

  -d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

  第二个redis:

  docker run -p 6372:6379 -p 16372:16379 --name redis-2 \

  -v /mydata/redis/node-2/data:/data -v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf \

  -d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

  第三个redis:

  docker run -p 6373:6379 -p 16373:16379 --name redis-3 \

  -v /mydata/redis/node-3/data:/data -v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf \

  -d --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

  第四个redis:

  docker run -p 6374:6379 -p 16374:16379 --name redis-4 \

  -v /mydata/redis/node-4/data:/data -v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf \

  -d --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

  第五个redis:

  docker run -p 6375:6379 -p 16375:16379 --name redis-5 \

  -v /mydata/redis/node-5/data:/data -v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf \

  -d --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

  第六个redis:

  docker run -p 6376:6379 -p 16376:16379 --name redis-6 \

  -v /mydata/redis/node-6/data:/data -v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf \

  -d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

 

随便进入一个容器创建集群:

  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