Docker网络命令

查看所有网络

[root@localhost ~]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
9473c27d1ebf   bridge    bridge    local
9bf6a1c58d75   host      host      local
3d82c6fa27f1   mynet     bridge    local
2c6941aebcf7   none      null      local
37eab5868c16   redis     bridge    local

网络模式

bridge:桥接 docker默认
none:不配置网络
host:和宿主机共享网络
container:容器网络连通(不常用)

创建自定义网络

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway
192.168.0.1 mynet
--driver 网络模式
--subnet 地址/掩码
--gataway 网关

自定义网络可以实现容器之间互相ping容器名可ping通
````

#### 网络连通

```shell
docker network connect mynet tomcat01
跨网络连接

实战:redis集群部署

for port in $(seq 1 6); \
do \
mkdir -p /root/mydata/redis/node-${port}/conf
touch /root/mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/root/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容器

# 生成6个redis容器脚本
for port in $(seq 1 6);
do
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
-v /root/mydata/redis/node-${port}/data:/data \
-v /root/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