docker 的三种网络模式网络

原创 浪子丶刘少  2019-07-02 12:00  阅读 982 次 评论 0 条 百度未收录

一、 docker 的三种网络模式网络

[root@host01 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
21f37b61a5d9        bridge              bridge              local
364641b37746        host                host                local
e67112956194        none                null                local

--network=  启动容器指定所需要使用的网络
--ip  指定一个静态 IP 
例:
docker run -it --network=my_net --ip 192.168.1.1 busybox
注:只有使用 --subnet 创建的网络才能指定静态 IP

one 网络

none 网络就是什么都没有的网络。挂在这个网络下的容器除了 lo,没有其他任何网卡。容器创建时,可以通过 --network=none 指定使用 none 网络。例:
[root@host01 ~]# docker run -it --network=none busybox
#没有任何网卡,只有本地回环lo
适用于安全性要求高并且不需要联网的应用

host 网络

连接到 host 网络的容器共享 Docker host 的网络栈,容器的网络配置与 host 完全一样。可以通过 --network=host 指定使用 host 网络。例:

[root@host01 ~]# docker run -it --network=host busybox
#在容器中可以看到 host 的所有网卡,并且连 hostname 也是 host 的。

适用于容器对网络传输效率有较高要求,则可以选择 host 网络

bridge 网络

Docker 安装时会创建一个 命名为 docker0 的 linux bridge。如果不指定--network,创建的容器默认都会挂到 docker0 上。例

[root@host01 ~]# docker run -d httpd
62c6f612f7b2a841443d913c220f662b280934ef929524307c9e4725dec93b1a

[root@host01 ~]# brctl show
bridge name     bridge id               STP enabled     interfaces
docker0         8000.024216fab490       no              veth4f1e268
                                                        vethd296fdc
#一个新的网络接口 veth4f1e268 被挂到了 docker0 上,veth4f1e268就是新创建容器的虚拟网卡。

user-defined 网络

user-defined 网络驱动:bridge, overlay 和 macvlan。overlay 和 macvlan 用于创建跨主机的网络

[root@host01 ~]# docker network create --driver bridge my_net
#通过 bridge 驱动创建 my_net 网络
参数:
--subnet 0.0.0.0/0  指定subnet
--gateway 0.0.0.0  指定网关


[root@host01 ~]# brctl show
bridge name          bridge id               STP enabled     interfaces
br-32ccda38c3b0      8000.0242ef4c2460       no
docker0              8000.024216fab490       no              veth4f1e268
                                                             vethfbd8b2b
#可查看到新建成功一个 my_net 网络,短 ID 为 32ccda38c3b0
#可通过命令docker network inspect my_net查看 my_net 网络信息

[root@host01 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
21f37b61a5d9        bridge              bridge              local
364641b37746        host                host                local
32ccda38c3b0        my_net              bridge              local
e67112956194        none                null                local

 

 

 

 

 

 

 

 

 

 

 

本文地址:https://www.ezliushao.com/237.html
加入我们:请加入刘少技术博客交流群:扫描二维码刘少技术博客的QQ交流群 | 浪子丶刘少 QQ:1150110267(注:微信暂停添加好友)
版权声明:本文为原创文章,版权归 浪子丶刘少 所有,欢迎分享本文,转载请保留出处!
NEXT:已经是最新一篇了

发表评论


表情