前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【赵渝强老师】Docker的Host网络模式

【赵渝强老师】Docker的Host网络模式

原创
作者头像
赵渝强老师
发布2024-08-13 10:16:05
910
发布2024-08-13 10:16:05
举报
文章被收录于专栏:容器技术

  由于Docker的容器彼此之间是逻辑隔离的,所以,在安装Docker时会为在容器创建隔离的网络环境。在该隔离的网络模式环境下,运行在宿主机上的各个容器具有完全独立的网络栈,并且Docker容器的网络环境与宿主机相互隔离。通过配置使用Docker的不同网络模式,可以使容器共享宿主机的网络命名空间,也可以实现容器间的相互访问。视频讲解如下:

视频内容

  Docker一共提供了4种网络模式:bridge、container、host和none。下表对比了这4种通信模式的特点。

  在使用host模式时,容器与宿主机将共享同一个网络命名空间,容器的IP地址与宿主机的IP地址相同。如果宿主机具有公网的IP地址,则容器也拥有这个公网的IP地址。即这时容器可以直接使用宿主机的IP地址与外界进行通信,且容器内服务的端口也可以直接使用宿主机的端口,不需要进行任何的转换。由于host模式不再需要宿主机的转发,因此其极大提高了性能。下图说明了host模式的工作机制。

  下面的命令将使用host模式来创建容器。

代码语言:powershell
复制
docker run -it --network=host busybox /bin/sh 

  对比一下容器内的网络信息和宿主机的网络信息,如下图所示,可以发现,容器与宿主机共享了同一个网络命名空间,即容器使用了宿主机的网络配置信息。

  尽管使用host模式可以很方便地通过localhost或者127.0.0.1实现容器与宿主机的访问,并且性能也比较好。但是这种网络模式也存在一定问题,主要体现在以下两个方面:

  • 由于容器使用了宿主机的网络环境,因此网络环境的隔离性功能被减弱,从而造成宿主机和容器会争用网络资源的使用。容器本身也不再拥有所有的网络资源,而是与宿主机共享网络资源。
  • 在host模式下,宿主机和容器使用了相同的IP地址信息,这不利于网络的配置和管理。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档