简体   繁体   English

从 Docker 容器内部,如何连接到同一容器内侦听的另一个进程?

[英]From inside of a Docker container, how do I connect to another process listening inside the same container?

I have spent a couple of hours researching this and the consensus seems to be that using host.docker.internal instead of localhost should allow one process within a container to connect to another process within the same container.我花了几个小时研究这个问题,似乎一致认为使用host.docker.internal而不是localhost应该允许容器内的一个进程连接到同一容器内的另一个进程。

However, host.docker.internal does not work for me.但是, host.docker.internal对我不起作用。

Environment:环境:

  • Docker Desktop 4.6.1 running on Windows 10 Docker 桌面 4.6.1 运行于 Windows 10
  • docker run command running on WSL2 Ubuntu docker run命令 Ubuntu

Command:命令:

  • docker run -p 80:80

Error错误

  • Connection timeout连接超时

Dockerfile contents Dockerfile内容

FROM openjdk:17-alpine
COPY xxx/target/AAA.jar AAA.jar
COPY xxx/target/BBB.jar BBB.jar
COPY xxx/target/CCC.jar CCC.jar
COPY ./dockerboot.sh dockerboot.sh 
ENTRYPOINT ["sh", "-c", "./dockerboot.sh"]
EXPOSE 80

dockerboot.sh contents dockerboot.sh内容

java -jar AAA.jar &
java -jar BBB.jar &
java -jar CCC.jar &
wait

The AAA , BBB , CCC jars contain java Springboot applications listening on ports 80, 8081, and 8082 respectively. AAABBBCCC jars 包含java个Springboot应用,分别监听80、8081、8082端口。

The answer is to just use localhost or 127.0.0.1 .答案是只使用localhost127.0.0.1

It turns out the root cause of my issue was unrelated to Docker.networking:事实证明,我的问题的根本原因与 Docker.networking 无关:

One of the microservice jars was malformed ( no main manifest attribute ) and was not starting up correctly, hence, failing to listen on port 8081 and causing Connection refused .其中一个微服务 jars 格式错误( no main manifest attribute )并且没有正确启动,因此无法侦听端口 8081 并导致Connection refused

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何连接到docker容器的localhost(从容器内部) - How do I connect to the localhost of a docker container (from inside the container) 从一个 Docker 容器内部,如何连接到同一 Docker 主机上另一个 Docker 容器的端口? - From inside one Docker container, how to connect to the port of another Docker container on the same Docker host? 如何从 Docker 容器内部连接到端点? - From inside of a Docker container, how do I connect to the endpoint? 从 Docker 容器内部,如何连接到机器的本地主机? - From inside of a Docker container, how do I connect to the localhost of the machine? 如何在网络内从另一个Docker容器引用一个Docker容器? - How do I refer to a docker container from another docker container, inside a network? 如何从docker容器内部连接到应用程序? - how to connect to an application from inside a docker container? 如何从docker-compose创建的docker容器内部连接到本地计算机? - How do I connect to local machine from inside of docker container created by docker-compose? 如何从另一台机器连接到在 docker 容器内运行的服务器套接字? - How can I connect to server socket running inside a docker container from another machine? 从 docker 容器内部连接到 docker 守护进程 - connect to docker daemon from inside docker container 如何从Docker容器中看到另一个Docker容器? - From a docker container how do I see another docker container?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM