网络模式
Docker网络模式 | 配置 | 说明 |
---|---|---|
host |
–net=host |
容器和宿主机共享Network namespace。 |
container |
–net=container:NAME |
容器和另外一个容器共享Network namespace。 |
none |
–net=none |
容器有独立的Network namespace,但并没有对其进行任何网络设置,如分配veth pair 和网桥连接,配置IP等。 |
bridge |
–net=bridge |
默认为该模式 |
默认创建3种模式
[root@node1 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
fa18c3cc657d bridge bridge local
c1196f6c46ca host host local
c20416a61dd3 none null local
# 手动创建一个bridge网络
[root@node1 ~]# docker network create test
1ed592b9d91ae8c49f5de4b975e5adb104264bf3b03973fcf3040683a4dfcf0e
[root@node1 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
fa18c3cc657d bridge bridge local
c1196f6c46ca host host local
c20416a61dd3 none null local
1ed592b9d91a test bridge local
测试
# 启动两个容器
docker run -itd --name=c1 busybox
docker run -itd --name=c2 --net=test busybox
# 查看他们ip
docker exec -it c1 ip ad
docker exec -it c2 ip ad
# 因为使用的不同的bridge,他们之间ping不通
docker exec -it c2 ping 172.19.0.2
# 手动将c1加入到test网络
docker network connect test c1
# 查看c1网卡,会增加一个
docker exec -it c1 ip ad
与另一个容器共享一个网络IP
# 先启动一个
docker run -itd --name c1 busybox
# 共享另一个容器网络
docker run -itd --net=container:c1 --name c2 busybox
# 网卡完全一致
docker exec c1 ip ad
docker exec c2 ip ad