12.docker的网络-host模式

1.docker的host网络模式简介

host模式下,容器将不会虚拟出自己的网卡、配置IP等,而是使用宿主机的IP和端口;也就说,宿主机的就是我的。

2. 以host网络模式创建容器

2.1 创建容器

我们仍然以tomcat这个镜像来说明一下。我们以host模式启动一个容器t3:

docker run -d --network host -p 8081:8080  --name t3 donkey/tomcat8:1.0.0

在这里插入图片描述

2.2 创建容器过程中的问题

这里我们看到两个问题:
1.容器启动完成后,打印的信息中有个警告信息:WARNING: Published ports are discarded when using host network mode
2.docker ps查看容器,我们指定了端口映射,但是显示出来的信息却没有。

2.3 问题的分析与解释

为了解释这个问题,我们再启动一个容器t4,t4我们仍然使用host网络模式,但是我们不指定端口映射:

docker run -d --network host --name t4 donkey/tomcat8:1.0.0

在这里插入图片描述
这时我们发现容器创建过程中并没有出现警告信息。为什么呢?我们看host模式下,它不仅ip都使用宿主机,就连端口也使用宿主机的的。所以就不需要再设置端口映射了,我们容器暴露的端口是什么,那么就是什么端口。这里我们t3容器暴露的端口是8080,所以我们直接就能用http://127.0.0.1:8080访问。
那现在又有一个问题,我们启动了t3和t4两个容器,由于来自同一个镜像,那么容器暴露的端口就都是8080,是一样的,这怎么办呢?
我们看下容器t4的日志:

docker logs t4

在这里插入图片描述
在这里插入图片描述
非常不幸,tomcat服务启动失败了,端口被占用了。

3. 以host网络模式下,容器和宿主机网络情况

3.1 大胆猜测

我认为宿主机和容器的网络情况是一模一样的。

3.2 宿主机的网络情况

在这里插入图片描述
没有看到之前成对出现的网卡,只有一个docker0和宿主机本身的网络信息。

3.3 容器的网络情况

ker exec -it t4 /bin/bash		

在这里插入图片描述

3.4 结论

不出所料,宿主机和容器的网路情况是一样的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/164441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QSplitter分裂器

QSplitter QSplitter 是 Qt 框架提供的一个小部件(widget),用于在用户界面中创建可拖动的分割窗口,允许用户调整子部件的大小和布局。它可以将父部件分割为多个可调整大小的子部件,使用户能够自定义界面的布局和大小。…

2024年跨境电商黄金赛道预测来了!跨境电商首选平台和品类有哪些?

跨境电商作为外贸新常态,在2023年已逐渐进入稳定增长的发展阶段,想必2024年跨境电商也会是一个向好的发展趋势,2024年做跨境电商,找准适合自己的电商平台和产品是成功的关键,今天东哥就对2024年的跨境电商黄金赛道做一…

Kotlin中 for in 是有序的吗?forEach呢?

我们要遍历一个数组、一个列表,经常会用到kotlin的 for in 语法,但是 for in 是不是有序的呢?forEach是不是有序的呢?这就需要看一下它们的本质了。 数组的 for in // 调用: val arr arrayOf(1, 2, 3) for (ele in …

安卓现代化开发系列——从生命周期到Lifecycle

由于安卓已经诞生快二十载,其最初的开发思想与现代的开发思想已经大相径庭,特别是Jetpack库诞生之后,项目中存在着新老思想混杂的情况,让许多的新手老手都措手不及,项目大步向屎山迈进。为了解决这个问题,开…

P6 C++控制流语句(continue, break, return)

前言 今天我们讲的是控制流语句,本期内容是上期课程的延续。 控制流语句一般与循环语句一起工作,它们让我们可以更好的控制这些循环的实际运行。 我们有三个主要的控制流语句可以使用,continue 、break 和 return,它们有不同的…

Python 订阅 image_transport 压缩后的深度图 compressedDepth

image_transport 是ros的一个图像处理工具,可以很方便地进行图像数据的压缩,可惜它目前并不支持python 当你如下安装了image_transport及其plugin后 sudo apt install ros-foxy-image-transport*运行 ros2 run image_transport list_transports可看到如下内容 Declared tr…

打印楼梯,同时在楼梯上方打印两个笑脸。

#include<stdio.h> int main() { int i,j; printf("\1\1\n"); /*输出两个笑脸*/ for(i1;i<11;i) { for(j1;j<i;j) printf("%c%c",219,219); printf("\n"); } return 0; }

【C++】POCO学习总结(五):功能介绍

【C】郭老二博文之&#xff1a;C目录 1、POCO 简介 github&#xff1a;https://github.com/pocoproject/poco 官网&#xff1a;https://pocoproject.org/index.html POCO第一个版本于 2005 年 2 月发布 POCO完全免费&#xff1a;POCO C 库根据 Boost 软件许可证获得许可。非…

QMI8658A(6轴)-EVB 评估板-使用说明书

QMI8658A6<6轴>-EVB 评估板-使用说明书 0.前言 1.硬件准备 1.1 I2C 接口 1.2 USART 接口 1.3 引脚序号功能定义 2.程序运行 0.前言 【相关博文】 【QMI8658 - 姿态传感器学习笔记 - Ⅰ】 【QMI8658 - 姿态传感器学习笔记 - Ⅱ】 【QMI8658 - 姿态传感器学习…

基于单片机的光伏发电并网系统设计(论文+源码)

1.系统设计 片作为主控制器。由于太阳能板本身的能量输出受到负载影响&#xff0c;因此需要在太阳能板后面加入一级DC/DC电路&#xff0c;来实现最大功率跟踪&#xff0c;以提高整个系统的效率。接着&#xff0c;由于光伏逆变器需要产生220V的交流电给居民使用&#xff0c;因此…

[MySQL] MySQL 表的增删查改

本篇文章对mysql表的增删查改进行了详细的举例说明解释。对表的增删查改简称CRUD : Create(创建), Retrieve(读取)&#xff0c;Update(更新)&#xff0c;Delete&#xff08;删除&#xff09;。其中重点是对查询select语句进行了详细解释&#xff0c;并且通过多个实际例子来帮助…

香港科技大学广州|先进材料学域博士招生宣讲会—华中科技大学大学专场!!!(暨全额奖学金政策)

“跨学科融合创新&#xff0c;引领新兴与未来行业的突破与发展——先进材料学域” 世界一流的新型可持续材料创新研究 夯实的先进材料领域国际学术影响力 教授亲临现场&#xff0c;面对面答疑解惑助攻申请&#xff01; 一经录取&#xff0c;享全额奖学金1.5万/月&#xff01; …

【性能优化】JVM调优与写出JVM友好高效的代码

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;2022年度博客之星全国TOP3&#xff0c;专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化&#xff0c;文章内容兼具广度、深度、大厂技术方案&#xff0c;对待技术喜欢推理加验证&#xff0c;就职于…

面试:Kafka相关问题

文章目录 简单介绍kafkakafka应用场景为什么需要zookeeperZookeeper 对于 Kafka 的作用是什么&#xff1f;kafka高效的原因kafka的特点kafka的核心组成Kafka中的Topic和Partition有什么关系&#xff1f;Kafka的消费消息是如何传递的&#xff1f;Kafka 的多副本机制了解吗&#…

STM32:基本定时器原理和定时程序

一、初识定时器TIM 定时器就是计数器&#xff0c;定时器的作用就是设置一个时间&#xff0c;然后时间到后就会通过中断等方式通知STM32执行某些程序。定时器除了可以实现普通的定时功能&#xff0c;还可以实现捕获脉冲宽度&#xff0c;计算PWM占空比&#xff0c;输出PWM波形&am…

Vue3 + Vite + TSX + vue3-ace-editor 踩坑

前言 由于 ace-editor 官网并没有提供各个前端框架Vue&#xff0c;React&#xff0c;Angular的直接使用的适配版本&#xff0c; 所以本次使用的vue3-ace-editor 是个人开源者维护的版本&#xff0c;原生是支持 SFC 模版用的&#xff0c;由于我这里习惯使用 JSX 或 TSX的方式&a…

【03】ES6:解构赋值

一、数组的解构赋值 ES6 允许按照一定模式&#xff0c;从数组和对象中提取值&#xff0c;对变量进行赋值&#xff0c;这被称为解构&#xff08;Destructuring&#xff09;。 1、基本使用 遵循 “模式匹配” &#xff0c;索引值相同的完成赋值 // 为变量赋值&#xff0c;只能…

Centos7 Python环境和yum修复

1、删除现有残余包 [rootlocalhost ]# rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps[rootlocalhost ]# rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps[rootlocalhost ]# whereis python |xargs rm -frv[rootlocalhost ]# whereis python ##验证清除&…

mybatis注解方式动态标签时有特殊符号,出现元素内容必须由格式正确的字符数据或标记组成

原始代码demo Select("SELECT COUNT(1) FROM AAAA WHERE name #{nage} AND age< 4") public Integer sumXxxxx(String nage, String age);现需求改为nage可以为空&#xff0c;因此使用了动态拼接 Select("<script> SELECT COUNT(1) FROM AAAA WHERE …

SWT/Jface(2): 表格的编辑

前言 上节说到, 创建和渲染表格需要如下几个步骤: 接收源数据数组(也可以是单个对象或者其他集合类型): TableViewer.setInput(Object)渲染接收的数据 渲染表头: TableViewer.setLabelProvider(IBaseLabelProvider)渲染内容: TableViewer.setContentProvider(IContentProvide…