原创内容,欢迎传播,请注明出处:http://www.cnblogs.com/johnd/p/set-docker-hostname.html

因为要部署 dubbo 服务到 docker 集群,在部署时遇到一个问题,就是dubbo会去获取 /etc/hosts 下面的 hostname 对应的IP地址作为 zookeeper 注册中心注册的 IP 地址,由于 docker 容器的 IP 是 172.17.0.2, 那注册到 zookeeper 的 IP 也就是 172.17.0.2 了。

那问题就来了,172.17.0.2 是 docker 容器的 IP, 容器外面是无法访问的,我的解决方案很简单,就是更改容器的 hostname 及其映射的 IP 来使得 dubbo 可以注册宿主的 IP 地址。

我是使用 docker-compose 来启动的, 在 docker-compose.yml 中添加 environment 和 extra_hosts 两个参数即可解决:

dubbo-service-provider:image: johnd/dubbo-service-provider:latestports:- 9090:9090- 20880:20880environment:HOSTNAME: dubbo-service-providerextra_hosts:dubbo-service-provider: 192.168.0.100

然后运行 docker-compose up 命令,可以看到 dubbo 已经注册了正确的 IP 地址:

[DUBBO] Register: dubbo://192.168.0.100:20880/com.johnd.dubbo.service.api.SayHelloToJohn

如果你是用 docker run  来运行 docker 容器,也可以添加相应的命令行参数。

------------------------------------------------------------------------------------------------------------

更新:

其实可以有更简单的处理办法,就是直接使用主机网络,在docker-compose的配置文件添加 net: host 配置。

dubbo-service-provider:image: johnd/dubbo-service-provider:latest  net: hostports:- 9090:9090- 20880:20880

ps:

也可以使用 links 连接外部容器

links:- zookeeper

  

转载于:https://www.cnblogs.com/duwei/p/6668844.html

docker[-compose] 连接内网其他容器地址相关推荐

  1. 基于Docker的frp内网穿透

    基于Docker的frp内网穿透 内网穿透 定义 内网穿透,也即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机. U ...

  2. 使用frps建立内网穿透从而实现外界连接内网电脑的全教程

    1. 说明 我有台服务器,但它在内网里,我需要通过ssh方式访问它,目前可以采用:向日葵等商业软件,RustDesk等开源软件.或者,<自建内网穿透服务器>. 本教程把实现上述功能的所有步 ...

  3. 使用XShell通过Linux跳板机连接内网服务器

    说明 最近在维护一个项目,一共有两台Linux服务器,内网相连,用途不同.仅服务器A有外网地址,要求通过服务器A维护服务器B的项目. 服务器A外网地址:220.178.21.57,内网地址:192.1 ...

  4. 远程控制桌面,外网电脑PC手机ios安卓mac远程桌面连接内网linux和windows主机,史上最全最详细图文教程

    通过开放的nat123.windows远程桌面.SSH工具,等合理的配置,实现外网远程控制内网远程桌面连接windows和,外网SSH访问内网LINUX主机的实现:在访问端,同时可以是电脑PC,也可以 ...

  5. 配置软路由-同时连接内网和外网

    配置软路由-同时连接内网和外网 Date Created: Mar 23, 2021 9:00 AM Status: 要学习的 windows 环境 首先使用cmd命令中route print检查 网 ...

  6. 双网卡一个连接外网一个连接内网的处理方法

    问题:笔记本上有两个网卡 无线网卡连接外网,另一个PCI-e网卡用的网线连接内网: 两个网卡连接后发现只能连接内网 不能上外网,用双网卡同时访问内外网暂时没有很完美的解决办法,因为存在路由冲突,毕竟有 ...

  7. 【云原生之Docker实战】使用Docker部署NPS内网穿透工具

    [云原生之Docker实战]使用Docker部署NPS内网穿透工具 一.NPS介绍 二.检查本地docker环境 1.检查docker服务状态 2.检查docker配置信息 3.开启IPv4 forw ...

  8. 公网SSH远程连接内网Ubuntu主机【cpolar内网穿透】

    SSH为建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议.但在没有公网IP的环境下,只能在同个局域网下远程. 本篇教程主要实现通过内网穿透,在公网环境下SSH远程登录内网的 ...

  9. 黑群晖docker清理缓存_黑群晖 NAS 瞎折腾 篇一:超简单的docker设置frp内网穿透

    黑群晖 NAS 瞎折腾 篇一:超简单的docker设置frp内网穿透 2020-04-15 11:32:08 25点赞 241收藏 27评论 你是AMD Yes党?还是intel和NVIDIA的忠实簇 ...

  10. 公网如何SSH远程连接内网服务器

    公网如何SSH远程连接内网Linux服务器 文章目录 公网如何SSH远程连接内网Linux服务器 1. 注册cpolar账号 2. 安装配置cpolar内网穿透 2.1 安装客户端 2.2 进行tok ...

最新文章

  1. 软件设计应该遵循的基本原则有哪些?
  2. 文件管理(NSfilemanager)
  3. html 批量转换excel,Excel批量转为Html,Html转换成Excel
  4. vue中如何在地图中标点…
  5. 超越JAX-RS规范:Apache CXF搜索扩展
  6. spring字符串判空_字符串工具类StringUtils实现字符串是否中文、字符串分割/判空/替换/查找、是否包含乱码及字符串数组合并等常规操作...
  7. javaScript中的回调函数
  8. CellularAutomation(细胞自动机)
  9. Windows下安装Ruby及配置镜像源
  10. jclasslib 插件安装及使用
  11. Tableau详细安装教程【踩坑】
  12. Jquery点击事件触发多次解决办法
  13. Ubuntu 完全卸载软件常用命令
  14. ToC产品和ToB产品的区别
  15. 重定向与重定位的理解
  16. android 功能模块之通讯模块四
  17. 创新创意springboot计算机毕业设计题目300例,总有你需要用到的!
  18. 掌握Revit中的标高的绘制和修改学习记录
  19. 芯片的英文手册需要全部看吗?
  20. python——查找指定文件并复制到指定文件夹

热门文章

  1. java new 数据类型_Java之基本数据类型
  2. 【译】采用微前端架构
  3. 什么时候不该使用es6箭头函数
  4. Keras实现text classification文本二分类
  5. python对象之间的关系
  6. 网络爬虫之Xpath用法汇总
  7. 10月17日云栖精选夜读:什么是新零售?阿里巴巴最新的报告终于说清楚了!(附报告)...
  8. Ionic3与Angular4新特性
  9. HAXM 6.0.5显示不兼容Windows
  10. 查看anaconda环境下各个包的版本