当前位置: 首页 > news >正文

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 结论

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

相关文章:

  • ModuleNotFoundError: No module named ‘torch_sparse‘
  • 浅谈Linux bash脚本----getopts获取脚本POSIX标准传参
  • 弹窗msvcp140_1.dll丢失的解决方法,超简单的方法分享
  • TrustAsia亮相Matter开发者大会,荣获Matter优秀赋能者奖
  • 【Spring进阶系列丨第四篇】学习Spring中的Bean管理(基于xml配置)
  • Vue 2使用element ui 表格不显示
  • iOS APP包分析工具 | 京东云技术团队
  • 分库分表、分布式数据库、MPP
  • appium2.0+ 单点触控和多点触控新的解决方案
  • IDEA前端thymeleaf只显示部分数据库问题
  • 构建个性化预约服务:预约上门服务系统源码解读与实战
  • 基于单片机设计的大气气压检测装置(STC89C52+BMP180实现)
  • C语言实现Linux下TCP Server测试工具
  • C/C++---------------LeetCode第2824. 统计和小于目标的下标对数目
  • C语言之strstr函数的使用和模拟实现
  • [笔记] php常见简单功能及函数
  • 「面试题」如何实现一个圣杯布局?
  • codis proxy处理流程
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • emacs初体验
  • exports和module.exports
  • Just for fun——迅速写完快速排序
  • Mithril.js 入门介绍
  • Promise初体验
  • React Native移动开发实战-3-实现页面间的数据传递
  • underscore源码剖析之整体架构
  • 成为一名优秀的Developer的书单
  • 从重复到重用
  • 基于HAProxy的高性能缓存服务器nuster
  • 你真的知道 == 和 equals 的区别吗?
  • 深入浅出webpack学习(1)--核心概念
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 转载:[译] 内容加速黑科技趣谈
  • MPAndroidChart 教程:Y轴 YAxis
  • ​520就是要宠粉,你的心头书我买单
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • # 职场生活之道:善于团结
  • (11)MATLAB PCA+SVM 人脸识别
  • (14)Hive调优——合并小文件
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (分布式缓存)Redis分片集群
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET开发人员必知的八个网站
  • // an array of int
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @html.ActionLink的几种参数格式
  • @ModelAttribute注解使用
  • @RestControllerAdvice异常统一处理类失效原因