gpt4 book ai didi

Docker 容器发布的端口无法访问?

转载 作者:行者123 更新时间:2023-12-01 14:38:35 25 4
gpt4 key购买 nike

所以情况就是这样,我有一个使用这个 dockerfile 构建的容器运行:

FROM python:2-onbuild
EXPOSE 8888
CMD [ "nohup", "mock-server", "--dir=/usr/src/app", "&" ]

我用这个命令运行它:
 docker build -t mock_server .
docker run -d -p 8888:8888 --name mocky mock_server

我在mac上使用它,所以boot2docker正在运行,我从8888上的boot2docker ip点击它。我尝试了boot2docker ssh并从那里点击容器。我跑了 docker exec -it mocky bashps aux显示:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root 1 0.0 0.9 113316 18576 ? Ss 15:16 0:00 /usr/local/bin/python2 /usr/local/bin/mock-server --dir=/usr/src/app &
root 5 1.6 0.1 21916 3440 ? Ss 17:52 0:00 bash
root 9 0.0 0.1 19180 2404 ? R+ 17:53 0:00 ps aux

当我 curl 它时:
curl -I -XGET localhost:8888/__manage
HTTP/1.1 200 OK
Content-Length: 183108
Set-Cookie: flash_msg_success=; expires=Thu, 04 Sep 2014 17:54:58 GMT; Path=/
Set-Cookie: flash_msg_error=; expires=Thu, 04 Sep 2014 17:54:58 GMT; Path=/
Server: TornadoServer/4.2.1
Etag: "efdb5b362491b8e4b8347b97ccafeca02db8d27d"
Date: Fri, 04 Sep 2015 17:54:58 GMT
Content-Type: text/html; charset=UTF-8

所以我的应用程序在容器内运行,但我无法从它外面得到任何东西。在这里可以做什么?

最佳答案

第一个猜测是python程序显式绑定(bind)到环回IP地址127.0.0.1这不允许任何远程连接。检查该 python 模拟 Tornado 服务器的文档以获取类似 --bind=0.0.0.0 的内容并进行相应调整。

您可以通过执行 docker exec 并在运行 netstat -ntlp | grep 8888 的容器中确认是否是这种情况。并查看绑定(bind)了哪个 IP。如果是 127.0.0.1 ,这证实确实是问题所在。

关于Docker 容器发布的端口无法访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32404011/

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