gpt4 book ai didi

ruby - 无法在 Ubuntu 中访问 Docker 的暴露端口

转载 作者:数据小太阳 更新时间:2023-10-29 08:07:36 24 4
gpt4 key购买 nike

Sinatra web app我在容器内部创建了作品,并且我能够在容器内的 9393 访问它。以下是我的 Dockerfile(它使用 Dockerfile: jikkujose/red 指定的图像):

FROM jikkujose/red
MAINTAINER Jikku Jose <jikkujose@gmail.com>

COPY . /banana_app
WORKDIR /banana_app

RUN bundle install
EXPOSE 9393
ENTRYPOINT ["bundle", "exec", "shotgun"]

我通过 docker run -itdP hey

启动了构建的镜像

当我这样做时,docker ps -a:

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                     NAMES
a815e2852c68 hey "bundle exec shotgun 13 minutes ago Up 13 minutes 0.0.0.0:32783->9393/tcp cranky_rosalind

当我这样做时,curl -v 'http://localhost:32783':

* Rebuilt URL to: http://localhost:32783/
* Hostname was NOT found in DNS cache
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 32783 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:32783
> Accept: */*
>
* Empty reply from server
* Connection #0 to host localhost left intact
curl: (52) Empty reply from server

附言:我have specified将应用程序绑定(bind)到 0.0.0.0

我错过了什么?为什么我也不能访问主机上的应用程序?

最佳答案

你解决了吗?我遇到了同样的问题 - 在我的端口 80 的情况下。目前,我通过使用 docker 主机的 ip 地址而不是引用 localhost 来解决它。我在接口(interface) docker0 上使用/sbin/ifconfig 得到这个。

即:

DOCKER_HOST_IP=`/sbin/ifconfig docker0 | /bin/grep "inet addr" | /bin/cut -d: -f2 | /bin/awk '{print $1}'`

然后

curl http://${DOCKER_HOST_IP} 给了我预期的结果,而 curl http://localhost 失败了。

关于ruby - 无法在 Ubuntu 中访问 Docker 的暴露端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33667467/

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