Spring boot docker端口不可用

Spring boot docker端口不可用,spring-boot,docker,Spring Boot,Docker,我有一个spring配置服务器项目,我正试图通过Docker运行它。我可以从命令行运行它,并通过以下方式成功连接我的其他服务和浏览器: 但是,如果我通过Docker运行它,调用将失败 我的配置服务器有一个Dockerfile: FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE=build/libs/my-config-server-0.1.0.jar ADD ${JAR_FILE} my-config-server-0.1.0.jar EXP

我有一个spring配置服务器项目,我正试图通过Docker运行它。我可以从命令行运行它,并通过以下方式成功连接我的其他服务和浏览器:

但是,如果我通过Docker运行它,调用将失败

我的配置服务器有一个Dockerfile:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE=build/libs/my-config-server-0.1.0.jar
ADD ${JAR_FILE} my-config-server-0.1.0.jar
EXPOSE 8980
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/my-config-server-0.1.0.jar"]
我通过以下方式构建:

docker build-t我的配置服务器

我通过以下方式运行它:

docker运行我的配置服务器-p 8980:8980

然后我确认它正在通过

docker ps

当我通过Docker运行它时,浏览失败,出现“ERR_CONNECTION_densed”,我的呼叫服务失败,原因是:

找不到PropertySource:GET请求时发生I/O错误 “”:连接被拒绝(连接被拒绝) 拒绝)


我可以想象应用程序只在本地主机上侦听,即127.0.0.1

您可能希望尝试将属性
server.address
设置为
0.0.0

然后,端口8980也应该在外部可用。

根据注释添加完整答案

首先,必须在图像名称之前指定
-p
docker run-P8980:8980我的配置服务器

其次,仅使用主机端口配置
localhost
,不会使您的“我的服务”容器与其他容器通信<代码>locahost容器中的容器位于自身内部(而非主机)。您需要使用适当的容器,以便两个容器可以相互通信

如果您在Linux上,默认值是
Bridge
,因此您可以将my config server容器ip
docker inspect{containerIp of config server}
配置为配置服务器端点

示例:如果我的配置服务器ip为172.17.0.2,则端点为-

只要遵循docker文档,就可以对网络的工作原理有更多的了解。


如果您想使用docker compose加速两个容器,那么可以使用服务名称链接这两个容器。只需遵循。

看起来主机端口未映射。尝试
docker run-p 8980:8980 my config server
。我认为这是一个很好的开始。通过更改每个Imran的命令,我可以在docker中运行配置服务器,并在浏览器中查看属性。但是,其他停靠服务仍在获取
c.c.c.ConfigServicePropertySourceLocator:无法找到PropertySource:获取请求时的I/O错误“http://localhost:8980/aservice/dev“:连接被拒绝
。我将通过以下方式启动这些服务:
docker run-e“SPRING\u PROFILES\u ACTIVE=dev”-p 3009:8980-t aservice
感谢您的出色回答。我通过Mac上的“ifconfig”找到了我的本地ip。然后我通过:
docker-run-e“SPRING\u PROFILES\u ACTIVE=dev”-e“SPRING\u CLOUD\u CONFIG\u URL=HTTP://10.0.0.143:8980”-p3009:8980-t我的配置服务器传递了它
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS               NAMES
1cecafdf99fe        my-config-server   "java -Djava.securit…"   14 seconds ago      Up 13 seconds       8980/tcp            suspicious_brahmagupta
spring:
  cloud:
    config:
      uri: http://172.17.0.2:8980