相关疑难解决方法(0)

在 docker 容器中运行 eureka 服务

我想eureka-server作为容器运行,并希望稍后让其他微服务注册到此容器。但是我遇到了一些问题,让它作为容器运行并访问它。该应用程序在 STS 中运行没有问题。当我在 STS 中执行它时,我可以访问eureka-serverusing localhost:8761.

application.java:

package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer
@SpringBootApplication
public class EurekaServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServiceApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

application.yml:

server:
  port: 8761

eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
Run Code Online (Sandbox Code Playgroud)

bootstrap.yml:

spring:
  application:
    name: eureka-service
Run Code Online (Sandbox Code Playgroud)

Dockerfile:

FROM java:8 
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","- 
jar","/app.jar"]
Run Code Online (Sandbox Code Playgroud)

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <properties>
        <docker.image.prefix>microservice</docker.image.prefix>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>1.8</java.version>
    </properties>

    <groupId>com.example</groupId> …
Run Code Online (Sandbox Code Playgroud)

java spring netflix docker netflix-eureka

6
推荐指数
1
解决办法
1万
查看次数

在不同的 docker 容器中运行的 Spring boot 应用程序拒绝连接

我有三个应用程序在同一主机上的 3 个容器中运行。

CONTAINER ID    IMAGE                       COMMAND               PORTS                    

3f938111c1bf    registration   "java -jar registration.jar"       0.0.0.0:8030->8030/tcp  
cb9c4782194e    security       "java -jar security.jar"           0.0.0.0:8020->8020/tcp  
60005507a246    main           "java -jar main.jar"               0.0.0.0:8000->8000/tcp   
Run Code Online (Sandbox Code Playgroud)

我可以使用 Ajax 请求从主应用程序访问安全应用程序的端点。

注册应用程序使用 RestTemplate 对象从 java 方法调用安全应用程序的端点。安全应用程序拒绝此调用,如下所示。

I/O error on POST request for "http://localhost:8020/security/register": Connect to localhost:8020 [localhost/127.0.0.1] failed: Connection refused (Connection refused); nested exception is org.apache.http.conn.HttpHostConnectException: Connect to localhost:8020 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
Run Code Online (Sandbox Code Playgroud)

我无法确定问题所在。请注意,当我通过 eclipse 在本地运行这些应用程序时,此调用工作得非常正常。

我对码头工人来说很陌生。我是否有可能错过了什么?任何线索都会有帮助。

多谢!

rest docker spring-boot

4
推荐指数
1
解决办法
4409
查看次数

标签 统计

docker ×2

java ×1

netflix ×1

netflix-eureka ×1

rest ×1

spring ×1

spring-boot ×1