前几节主要说的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
#进入到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,了解他们的之间的区别。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦