继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

『中级篇』容器网络之host和none(29)

IT人故事会
关注TA
已关注
手记 399
粉丝 1.7万
获赞 1318

前几节主要说的bridge network,在实际中bridge确实运用比较广泛,之前通过docker network ls 里面不光有bridge,还有host 和none,这次就说说这2个

查看network ls里面的网络类型
sudo docker network ls
#删除之前自定义的bridage
sudo docker network rm mybridge
sudo docker network ls

  • 创建一个network none的容器
    sudo docker run -d --name test5 --network none busybox /bin/sh -c "while true;do sleep 3600;done"
    sudo docker network inspect none

sudo docker exec -it test5 /bin/sh
ip a

发现一个问题,test5它没有回管口,只有单独的一个lo口,这种none的也就自己通过exec的方式访问,其实还真有应用场景。封闭意味着隔离,一些对安全性要求高并且不需要联网的应用可以使用 none 网络。比如某个容器的唯一用途是生成密码,就可以放到 none 网络中避免密码被窃取。

  • 创建一个network host的容器
    sudo docker stop test5
    sudo docker rm test5
    sudo docker run -d --name test5 --network host busybox /bin/sh -c "while true;do sleep 3600;done"
    #这个命令之后回发现跟none一样也是ipv4 和ipv6 都是"",没有对应的ip地址
    sudo docker network inspect host

image.png

#进入到test5里面去看看效果
sudo docker exec -it test5 /bin/sh
#发现一个问题没有,在这个test5 里面的网络结构和外边的linux主机的网络结构是一样的
ip a

直接使用 Docker host 的网络最大的好处就是性能,如果容器对网络传输效率有较高要求,则可以选择 host 网络。当然不便之处就是牺牲一些灵活性,比如要考虑端口冲突问题,Docker host 上已经使用的端口就不能再用了。Docker host 的另一个用途是让容器可以直接配置 host 网路。比如某些跨 host 的网络解决方案,其本身也是以容器方式运行的,这些方案需要对网络进行配置,比如管理 iptables,大家将会在后面进阶技术章节看到。

PS : none 和host的网络基本也讲解完成了,他们各有利弊,其实用到最多的还是bridage,了解他们的之间的区别。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP