【发布时间】:2022-11-16 21:55:49
【问题描述】:
我使用以下方法提取了一个 python docker 图像:
docker pull python:3.8
然后我启动了一个简单的 http 服务器:
docker run -ti -p 8080:8080 900972ffeecd python -m http.server 8080
如果我 docker exec 进入容器并运行 curl localhost:8080 我得到我期望的响应,但是如果我从主机运行相同的 curl 命令它失败。
不应该使用-p 8080:8080 足以暴露端口吗?
可能相关的信息:我在 MacOS 上使用 colima。
【问题讨论】:
-
您可能需要强制服务器在 0.0.0.0 上运行,而不是默认的 127.0.0.1
-
运行
docker run -ti 900972ffeecd python -m http.server 8080 --bind 0.0.0.0没有任何明显的区别。 -
那次你也-p了吗?
-
哦,你在 mac 上。错误的
-
哦耶。我意识到我的错误,然后尝试
docker run -ti -p 8080:8080 900972ffeecd python -m http.server 8080,但无济于事。