gpt4 book ai didi

docker - 识别 Docker 容器的 IP 地址并连接到端口

转载 作者:行者123 更新时间:2023-12-02 19:01:37 25 4
gpt4 key购买 nike

在我的windows上笔记本电脑我创建了一个 Play如果我直接执行它的脚本,应用程序运行良好。在本地计算机上,我使用 localhost:9000 访问应用程序网址。

我现在创建了一个Docker应用程序的图像并已暴露端口 9000

#this docker file copies prod specific files to container, eg logback_prod.xml and application_prod.conf

FROM openjdk:8
#ENV APP_NAME myapp
#ENV APP_VERSION 1.0-SNAPSHOT
...
#entrypoint is deploy/....
EXPOSE 9000
ENTRYPOINT ...

但我无法访问 localhost:9000 上的应用程序。我怀疑该镜像可能正在 docker 本身创建的其他 IP 上运行。

我说得对吗?如何通过容器访问我的应用程序?我不需要Kubernetes Services等等,因为我已经在另一台机器上进行了该设置。我的具体问题是如何访问 docker直接容器。

更新我还尝试运行 docker image使用--network="host"但这也不起作用

更新2

根据下面的建议,我执行了以下命令,但仍然无法访问该应用程序。

docker run -p 9000:9000 --env-file env.txt imagename

我看到了痕迹

[debug] a.i.TcpListener - Successfully bound to /0.0.0.0:9000
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0.0.0.0:9000

docker ps -a显示应用程序已通过端口绑定(bind) 0.0.0.0:9000->9000/tcp

docker inspect显示IP -"IPAddress": "172.17.0.2"

但是http://172.17.0.2:9000/Chrome不起作用This site can’t be reached172.17.0.2

netstat -abcmd显示TCP 0.0.0.0:9000 LAPTOP-788I0GL1:0 LISTENING [com.docker.backend.exe]

最佳答案

识别容器的 IP 地址

在正在运行的容器中尝试这些选项。 <docker>指容器的名称或ID

docker inspect --format '{{ .NetworkSettings.IPAddress }}' <docker>

//WINDOWS ONLY
docker inspect --format "{{ .NetworkSettings.IPAddress }}" <docker>

docker inspect <docker> | grep "IPAddress"

Grep 在 Windows 上不可用*


docker network inspect bridge

最后一个将输出在bridge中分配的所有正在运行的容器的信息。 网络(默认)。识别后,检查容器的 IPv4Address 字段。


公开端口

为了能够连接到容器的端口,您可以公开它。 请注意,在这种情况下不需要上一步:

docker run -p 9000:9000 --env-file env.txt manuchadha25/mydockerimage

默认情况下,docker 将绑定(bind)/监听主机上的所有接口(interface)。 -p 9000:9000选项公开端口,结果你得到: 0.0.0.0:9000->9000/tcp

现在 localhost:9000 成功连接到您的 docker 进程。

关于docker - 识别 Docker 容器的 IP 地址并连接到端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65485858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com