千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:南京千锋IT培训  >  技术干货  >  细致学习Docker网络 - Host和none模式

细致学习Docker网络 - Host和none模式

来源:千锋教育
发布人:wjy
时间: 2023-02-13 20:42:59

  最近有几个已经就业的小伙伴,过来问千锋健哥关于Docker网络配置的问题,他们在实际开发中还是有些疑问。关于Docker网络这一块的内容确实很多,为了让大家搞清楚这个问题,健哥准备搞几篇系列文章,来为各位小伙伴解惑。这次健哥带来的是Docker网络的host和none模式,接下来我们直接上干货!!!

  Docker容器和服务之所以强大的原因之一,是可以将它们连接在一起,或者将它们连接到非Docker的工作负载上。而Docker容器和服务甚至都不需要知道它们部署在Docker容器上。无论Docker主机是运行在Linux、window上,或者两者混合运行,都可以使用Docker以与平台无关的方式来管理它们。

  而这一切的基础,都是缘于Docker网络提供的强大功能和良好设计!

  一. 操作环境

  我们先说一下运行所需要的环境,如下:

  centos 7.x版本

  docker版本:Docker version 20.10.18, build b40c2f6

  xshell 7

  二. Docker network 常用命令

  我们先来看看Docket中提供的常用network命令。

  查看docker network帮助手册

细致学习Docker网络 - Host和none模式1

  列出docker网络

细致学习Docker网络 - Host和none模式2

  通过docker network create创建一个网络

细致学习Docker网络 - Host和none模式3

细致学习Docker网络 - Host和none模式2344

  查看qf网络的详细信息

细致学习Docker网络 - Host和none模式4

  三. Docker网络的作用

  在开始学习Docker网络用法之前,我们再来了解一下Docker网络的作用,主要作用如下:

  1. Docker网络可以负责容器间的相互连接和通信,以及端口映射; 2. 当容器`ip`地址发生更改时,可以通过服务名称进行网络通信,不会因为`ip`的更改导致服务不可用。

  四. 网络模式

  Docker的网络有以下几种网络模式。

细致学习Docker网络 - Host和none模式5

  网络模式说明

  bridge, 虚拟网桥, 默认模式每一个容器有独立的ip, 并将容器连接到docker0网桥上

  host使用宿主机的ip和端口号, 容器不会虚拟出自己的网卡、配置ip

  none有独立的network namespace,但是并未对其进行任何网络设置

  container和一个指定的容器共享ip和端口号, 不会虚拟出网卡、配置ip等操作.

  1. host模式

  直接使用宿主机的ip地址与外界通信, 不再需要额外进行nat转换;

  容器将不会获得一个独立的network namespace, 而是和宿主机共用一个network namespace;

  容器不会虚拟出自己的网卡而是使用宿主机的ip和端口号。

  1.1 host模式详解

细致学习Docker网络 - Host和none模式3991

  当容器指定该模式时,会共享宿主机的ip和port. 换句话说, 容器指定的端口号不能重复.「使用此模式, 当使用-p参数指定端口映射的时候会出现警告」.

  1.2 验证案例

  我们以tomcat容器为例进行验证,先启动tomcat容器,指定应用的网络模式为host, 并使用-p参数指定端口映射。

细致学习Docker网络 - Host和none模式4425

  警告信息: WARNING: Published ports are discarded when using host network mode;

  host模式使用的是宿主机端口号,此模式下使用-p映射端口无效。

  1.3 查看宿主机网络情况

细致学习Docker网络 - Host和none模式4837

  进入tomcat8081容器内部查看网络。进入tomcat容器内部如果没有ip addr命令,则需要手动安装一下,命令如下所示:

  ·

  apt-get update & apt-get install -y ip-route2

细致学习Docker网络 - Host和none模式5236

  通过观察可以发现,容器内部的网络和宿主机一模一样。

  2.

  1.4 host模式使用姿势

  --network=host或者--network host

  2. none模式

  none模式下,并不为docker容器进行任何网络配置;

  docker容器没有网卡,ip, 路由等信息, 只有一个lo;

  需要我们自己为docker容器添加网卡, 配置ip`等;

  此种模式给了程序员极大的灵活性,但是需要自己配置,如无其它需求,建议使用bridge或者host模式。

  2.1 使用姿势

  我们在创建容器的时候,可以指定网络模式为none模式。

  —network none或者—network=none

  2.2 使用示例

  这里以centos容器为例。

细致学习Docker网络 - Host和none模式5844

  查看容器的详细信息当中的网络信息:

细致学习Docker网络 - Host和none模式6148

  进入容器内部,查看网络情况:

细致学习Docker网络 - Host和none模式6449

  五. 总结

  各位小伙伴,今天千锋健哥为大家带来的birdge模式就是这些内容了,是不是很容易理解呢?

  docker网络作为整个docker体系中极为重要的一个知识点,在生产中经常被用到,尤其是网络模式当中的bridge模式和host模式更是应该重点掌握。

  自定义网络,可以通过服务名称「容器名称」进行容器间的通信。自动处理了容器名称与ip地址的映射关系,这样使得容器间通信更为可靠和容易。至于其他模式,如果各位小伙伴想要了解,敬请继续期待千锋健哥本系列的其他文章哦。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

三元运算符是什么?三元运算符怎么用

2023-06-20

Java常量是什么?

2023-06-14

保证Servlet线程安全的方法有哪些?

2023-06-05

最新文章NEW

什么是javascript?

2023-06-12

javascript常用正则

2023-04-20

用c语言编写爱心的代码

2023-04-14

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>