【docker】容器跟宿主机、其他容器通信

2023-09-17 13:37:33

说明

容器跟宿主机、其他容器通信的关键在于它们要在同一个网络,或者通过修改路由信息来可以让它们互相之间能够找得到对方的 IP。本文主要介绍让它们在同一个网络的方法。

Docker 自定义网络模式介绍

Docker容器可以通过自定义网络来与宿主机或其他容器进行通信。在Docker中,有三种类型的网络:bridge网络、host网络和Overlay网络。

  1. Bridge网络

Bridge网络是最常用的网络类型,每个Docker主机都具有一个默认的Bridge网络。当Docker容器启动时,它将自动加入默认的Bridge网络,并分配一个IP地址。Docker容器可以通过容器名称或IP地址来与其他容器进行通信。如果要将容器暴露给宿主机或外部网络,则可以使用“docker run”命令中的“-p”或“–publish”选项指定端口映射。

  1. Host网络

Host网络允许Docker容器直接使用宿主机的网络堆栈。这意味着容器将使用宿主机的IP地址,并且不会进行任何网络地址转换(NAT)。这使得容器直接访问宿主机上的其他服务变得更加容易。要使用Host网络,请在“docker run”命令中使用“–network=host”选项。

  1. Overlay网络

Overlay网络是一种多节点网络,它允许Docker容器在不同的Docker主机之间进行通信。这种网络类型需要使用Docker Swarm或Kubernetes等Docker集群管理工具。在Overlay网络中,每个Docker容器分配一个唯一的IP地址,并且容器间的通信是通过虚拟网络进行的。

总之,通过使用自定义网络和IP地址,Docker容器可以轻松地与宿主机和其他容器进行通信,从而实现更高效的应用程序部署和管理。

下面以 Bridge 模式来举例

创建自定义网络

假设你的网络 IP 是 a.b.c.1,子网掩码是 255.255.255.0 ,自定义网络名称为 mynet。那么可以使用下面的命令来创建自定义网络:


docker network create --driver bridge --subnet a.b.c.0/20 mynet 

通信测试

  1. 先创建容器

docker run -it --network mynet --ip a.b.c.11 ubuntu:20.04

  1. 安装 inetutils-ping

apt install -y inetutils-ping

  1. 通信测试
  • 3.1 跟宿主机通信

ping a.b.c.1

  • 3.2 跟其他容器通信

ping a.b.c.22

  • 3.3 跟互联网通信

ping www.baidu.com

如果请求没有超时且没有丢包,则说明通信成功

更多推荐

Unity粒子系统ParticleSystem各模块及其参数学习

粒子系统控制面板默认有4个模块:ParticleSystem(主模块),Emission(发射模块),Shape(形状模块),Renderer(渲染器模块)1.ParticleSystem模块包含了影响整个粒子系统的全局设置,主要用来初始化粒子系统,例如设置例子初始化时间、循环方式、初始速度、颜色、大小等基本参数Dur

短视频矩阵系统源码开发搭建技术解析-PHP语言

一、系统架构整个短视频矩阵系统大概分为以下几个模块:1.多平台账号管理支持抖音、快手、小红书、西瓜、头条视频号等多平台账号管理。2.视频管理模块支持视频批量上传、批量剪辑、文字转语音,特效等功能配置3.推荐算法模块推荐算法模块主要用来推荐用户感兴趣的视频,包括基于用户个人数据、基于视频分类标签、基于热度等推荐方法。4.

服务器迁移:无缝过渡指南

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

华为hcie认证考试怎么考?

华为HCIE认证考试怎么考?前文腾科也说了HCIE认证考试的难度会比较大,具体是难在哪里呢?华为HCIE认证的考试需要考一门笔试,笔试主要是单选、多选、判断、填空、拖拽这几个题型,考试时长一般是一个半小时,试题的数量不等正常情况下是50至70题,笔试的总分是1000分,考到600分就算是通过了。在笔试通过且笔试成绩在有

Redis面试题(四)

文章目录前言一、锁互斥机制二、watchdog自动延期机制三、可重入加锁机制四、释放锁机制五、上述Redis分布式锁的缺点六、使用过Redis分布式锁么,它是怎么实现的?总结前言锁互斥机制watchdog自动延期机制可重入加锁机制释放锁机制上述Redis分布式锁的缺点使用过Redis分布式锁么,它是怎么实现的?`一、锁

ion-dipole forces and ion bonding ‘s differences

Ion-dipoleforcesandionbondingarebothtypesofinteractionsbetweenionsandpolarmolecules,buttheyhavedistinctdifferences:1.**NatureofInteraction**:-**Ion-DipoleForces

JavaScript 运行时比较: Node.js、 Deno 和 Bun

文章目录为什么选择正确的JavaScript运行时很重要介绍JavaScript运行时Node.jsDenoBun比较JavaScript运行时性能社区稳定性安全附加功能小结JavaScript运行时可帮助您构建高级的、服务器驱动的JavaScript项目,这些项目不依赖于用户的浏览器来运行。有几种运行时可供选择,老牌

cpp-httplib库的基本使用及文件上传下载

0.前言cpp-httplib是一个header-only的跨平台HTTP/HTTPS网络库,采用MIT开源协议,接口为阻塞调用。虽然功能简单,但也不用一堆依赖,C++的接口也比libcurl的C接口用起来顺手一点,文档也提供了不少参考代码,如果是做简单的HTTPserver或者client还是值得一试的。库里有两个重

vue基础

一、属性(1)el:挂载点<scriptsrc="https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script><body><divid="app"><p>{{message}}</p></div><script>newVue({el:'#app',data:{me

深入理解函数模板

函数模板深入理解编译器从函数模板通过具体类型产生不同的函数编译器会队函数模板进行两次编译对模板代码本身进行编译对参数替换后的代码进行编译注意事项函数模板本身不允许隐式类型转换自动类型推导时,必须严格匹配显示类型指定时,能够进行隐式类型转换函数模板可以定义任意多个不同的类型参数对于多参数函数模板无法自动推导返回值类型可以

蓝绿发布 灰度发布 区别

蓝绿发布灰度发布区别蓝绿发布(Blue-greendeployment)和灰度发布(Canaryrelease)是两种常用的软件发布策略,用于逐步引入新版本或功能。尽管它们的目标相似,但在具体实施和效果上存在一些区别。下面是蓝绿发布和灰度发布的主要区别:并行环境:蓝绿发布使用并行环境来同时部署新旧版本的应用程序,其中蓝

热文推荐