docker容器网络(详细)

一.网络模式

1.bridge:默认网络

docker启动后创建一个docker0的网桥,默认创建的容器也是添加到这个网桥中
例如:
docker run -itd 镜像名     //默认使用bridge

2.host

容器不会获得一个独立的network namespace,而是与宿主机公用一个,这就意味着容器不会有自己的网卡信息
例如:
docker run -itd --net=host 镜像名  //生成的容器和宿主机的网络一模一样,这样的容器相当于宿主机的基础上起了个应用,这样的网络性能比网桥好

3.none

获取独立的network namespace,但不为容器进程任何的网络配置,需要我们自己手动设置
例如:
docker run -itd --net=none 镜像名  //生成的容器是本地回环(127.0.0.1)

4.container

与指定的容器使用同一个network namspace,具有同样的网络配置信息,两个容器除了网络,其他都还是隔离的
例如:
docker run -itd --net=container:容器1 容器2  //这个功能就是模仿容器1的网络,所生成的容器2网络是和容器1相同的

5.自定义网络

与默认的bridge原理一样,但自定义网络具备内部DNS发现,可以通过容器名容器之间网路通信
例如:
docker network ls    //查看网络
docker network create test  //创建test网络
docker run -itd --name my1 --net=test nginx  //用新的网桥创建容器,然后通过设置了名字my1,就可以通过my1来进行网络通信

*可以通过自定义网络来自定义网段
docker network create --driver bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 mytest1  //创建一个自定义网络,网段为192.168.0.0/24,网关为192.168.0.1,名为mytest1的网络

猜你喜欢

转载自blog.csdn.net/weixin_42917630/article/details/104481891