0%

docker网络模式

网络模式

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