Docker自定义网络

一、自定义网络

1、创建 自定义网络
Docker默认会提供三种网络模式 分别为:bridge、host、none 如下:

docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
c0d8c8724276        bridge              bridge              local
f825b901d9d9        host                host                local
52942451d07c        none                null                local

创建 mynet-1 网络

docker network create --driver bridge --subnet 10.10.14.0/24 --gateway 10.10.14.1 mynet-1
  • --driver:指定网络模式
  • --subnet: 指定网段
  • --gateway:指定网关
[root@instance-xsv07pjt ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
c0d8c8724276        bridge              bridge              local
f825b901d9d9        host                host                local
897d03c61772        mynet-1             bridge              local
52942451d07c        none                null                local

2、通过 mynet-1网络创建两台容器是否可以相互通信?

docker run -itd --name nginx-1 --network mynet-1 nginx:1.18.0
docker run -itd --name nginx-2 --network mynet-1 nginx:1.18.0
docker exec nginx-1 curl http://nginx-2

总结:在一个网络里面的容器是可以相互通信的。

3、再创建 mynet-2 网络, mynet-1网络容器和 mynet-2网络容器是否可以通信?

docker network create --driver bridge --subnet 10.10.15.0/24 --gateway 10.10.15.1 mynet-2

docker run -itd --name mynet-1 --network mynet-1 nginx:1.18.0
docker run -itd --name mynet-2 --network mynet-2 nginx:1.18.0
容器名称 IP地址 网络
mynet-1 10.10.14.2 mynet-1
mynet-2 10.10.15.2 mynet-2

思考一下 mynet-1mynet-2 是否可以通信呢?

docker exec mynet-1 curl mynet-2

答:不能,因为不在一个网络里面,不能访问到彼此

二、不同网络通信

两个不同网络的容器可以通过 connect 进行打通网络

# 为mynet-2容器打通mynet-1网络
docker network connect mynet-1 mynet-2

其实也就是添加双网卡

docker inspect mynet-2

posted @ 2022-11-15 17:31  乱七八糟博客备份  阅读(364)  评论(0编辑  收藏  举报