前言

  昨天在部署一个docker项目时遇到了一个问题,故记录下来.

环境说明

  Centos7

  Docker version 18.06.3-ce, build d7080c1

问题说明

该项目分别启动五个docker容器,其中一个为eurake,启动eurake没问题但是,剩下的4个容器 启动后在向eurake进行注册时一直报连接不上

2019-08-20T01:51:02.471367299Z 2019-08-20 01:51:02.471 ERROR 1 --- [tbeatExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient  : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://eureka.local:8761/eureka/}
2019-08-20T01:51:02.471738157Z 2019-08-20 01:51:02.471 ERROR 1 --- [tbeatExecutor-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_CHICKEN-DATASOURCE/c40bde5b7b3d:chicken-datasource:8010 - was unable to send heartbeat!
2019-08-20T01:51:03.472917034Z 2019-08-20 01:51:03.472 ERROR 1 --- [tbeatExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://eureka.local:8761/eureka/}
2019-08-20T01:51:03.473274233Z 2019-08-20 01:51:03.472 ERROR 1 --- [tbeatExecutor-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_CHICKEN-DATASOURCE/c40bde5b7b3d:chicken-datasource:8010 - was unable to send heartbeat!

时以为是宿主机没有配置hosts,配置完之后还是失败,修改ip为127.0.0.1 ..... 一系列无用操作后还是不行.后来想了一下,是否能通过容器里面来进行一些操作,来定位问题.

但是新创建的容器里面有好多命令都没有,像telnet, ping, 百度中....

进入容器docker exec -it 容器id /bin/bash 执行命令apt-get 三连

apt-get update
apt-get install telnet
apt-get install iputils-ping

排查问题

telnet 操作

telnet ip:8761 ok
telnet eureka.local 8761 提示unknown host

ping操作

ping ip ok
ping eureka.local 提示unknown host

找到问题,宿主机的hosts配置无法同步到容器中.也就是容器无法获取宿主机的hosts配置.

解决问题

在创建docker容器时,将如下参数添加进去即可.

$(cat /etc/hosts|awk -F ' ' '{if(NR>2){print "--add-host "$2":"$1}}')

参数说明:将宿主机的hosts文件从第三行开始添加到容器中

docker run -p 8050:8050 -d --network bridge --name 容器名 $(cat /etc/hosts|awk -F ' ' '{if(NR>2){print "--add-host "$2":"$1}}' 容器镜像:镜像tag

启动容器,完美解决

参考博客

https://www.cnblogs.com/zipon/p/6387602.html

https://www.cnblogs.com/kazihuo/p/9773500.html

docker部署Eurake服务,服务节点无法注册服务的更多相关文章

  1. 服务端使用Zookeeper注册服务地址,客户端从Zookeeper获取可用的服务地址。

    一个轻量级分布式RPC框架--NettyRpc - 阿凡卢 - 博客园 http://www.cnblogs.com/luxiaoxun/p/5272384.html 这个RPC框架使用的一些技术所解 ...

  2. docker部署dubbo怎么实现外部主机访问服务?

    dubbo在分布式项目中太常见了,docker也是现在热门的项目,然而docker的网络配置也是非常麻烦的一件事情,这里给大家介绍一下dubbo实现跨服务器访问服务配置 docker-compose. ...

  3. Centos7借助docker部署mysql,提供远程链接服务

    Centos7 借助docker部署mysql,并提供远程连接服务 安装docker 运行docker 注意安装docker和运行docker的步骤很简单,可以参考我学习docker的笔记 docke ...

  4. SpringCloud(一)之微服务核心组件Eureka(注册中心)的介绍和使用

    一 Eureka服务治理体系1.1 服务治理服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现. Spring Cloud Eureka是Spring Clou ...

  5. 注册服务到服务中心(Consul)

    注册服务到服务中心(Consul) 添加POM文件中的依赖 在POM文件添加如下依赖: <dependency> <groupId>org.springframework.bo ...

  6. Docker部署HDFS

    docker部署hadoop只是实验目的,每个服务都是通过手动部署,比如namenode, datanode, journalnode等.如果为了灵活的管理集群,而不使用官方封装好的自动化部署脚本,本 ...

  7. .Net微服务实践(五)[服务发现]:Consul介绍和环境搭建

    目录 介绍 服务发现 健康检查.键值存储和数据中心 架构 Consul模式 环境安装 HTTP API 和Command CLI 示例API介绍 最后 在上篇.Net微服务实践(四)[网关]:Ocel ...

  8. 基于docker部署的微服务架构(四): 配置中心

    原文:http://www.jianshu.com/p/b17d65934b58%20 前言 在微服务架构中,由于服务数量众多,如果使用传统的配置文件管理方式,配置文件分散在各个项目中,不易于集中管理 ...

  9. Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。

    系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...

随机推荐

  1. Ubuntu 16.04安装完重启后黑屏,光标一直闪

    原文:https://blog.csdn.net/weixin_38533896/article/details/81023690 版权声明:本文为博主原创文章,转载请附上博文链接! 安装教程网址:h ...

  2. mysql使用慢查询日志分析数据执行情况

    #查询慢查询日志文件路径show variables like '%slow_query%';#开启慢查询日志 ; #设置慢查询阀值为0,将所有的语句都记入慢查询日志 ;#未使用索引的查询也被记录到慢 ...

  3. 当前主流的小型嵌入式 GUI

    当前主流的嵌入式 GUI当前主流的小型嵌入式 GUI 主要有:emWin(uCGUI),TouchGFX,Embedded Wizard GUI,uGFX 和 MicroChip GUI. 当然,还有 ...

  4. php - ftp 上传文件到远程服务器

    ccentos7服务器 ======================== 一.安装vsftpd及ftp命令 yum install vsftpd -y yum install ftp -y 二.vsf ...

  5. 淘宝npm镜像安装失败的问题

    一:背景 心血来潮要简单搞一搞前端运行.打包的东西.结果第一步通过npm安装淘宝npm的时候就出问题了,如图: 二:解决方法 图片显示有点垃圾,但是看出来“Missing write access t ...

  6. Bitmap之compress图片压缩

    package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...

  7. Packetbeat简介

    Packetbeat简介 抓包示例 下载packetbeat 抓取elasticsearch的包 ①启动elasticsearch 启动packetbeat 配置es.yml ############ ...

  8. 对Mysql数据表本身进行操作

    创建实验环境 mysql> create database test_db; Query OK, 1 row affected (0.00 sec) mysql> use test_db; ...

  9. Linux自动获取IP地址 重启不会消失

    网络设置 root用户登录    编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 将ONBOOT=no 改为 ONBOOT=yes 并保存 重启network ...

  10. Sybase数据库网页数据维护工具

    Sybase是优秀的数据库产品,在银行,政务等行业广泛使用, 现在TreeSoft数据库管理系统已支持Sybase了,直接在浏览器中就可以操作查看Sybase数据了,十分方便.        Tree ...