docker - 无法将 localhost 与 Docker 容器一起使用
问题描述
我在 stackoverflow 和 github 上尝试了其他答案,但没有一个有效。当我运行容器时, 我将其作为输出(这是标准的“烧瓶运行”输出)
这是我的 Dockerfile
FROM alpine:latest
RUN apk add --no-cache python3-dev && pip3 install --upgrade pip
WORKDIR /app
COPY . /app
RUN pip3 install Flask && pip3 install requests && pip3 install simplejson
EXPOSE 5000
CMD [ "flask", "run" ]
我也尝试过 0.0.0.0:5000 但它不起作用。
解决方案
您可以通过 Dockerfile 公开端口或使用 --expose 然后使用 -P 标志发布它。这会将暴露的端口绑定到随机端口上的 Docker 主机(通过运行 docker container ls 进行验证)。
您可以通过 Dockerfile 或使用 --expose 公开端口,然后使用 -p 80:80 标志发布它。这会将暴露的端口绑定到端口 80 上的 Docker 主机,并且它期望暴露的端口也是 80(根据需要使用 HOST:CONTAINER 进行调整)。
您可以忽略公开任何内容而只使用 -p 80:80 在这种情况下,这将兼作公开和发布端口。
试试跑步,
docker run -d --name <your_ctr_name>-p 5000:5000 <your_image_name>:latest
如果需要绑定主机,
docker run -d --name container_name -p 10.x.x.100:5000:5000 image_name:latest
如果要使用网络主机公开 docker,
docker run -d --network host --name container_name image_name:latest
推荐阅读
- android - Android MP4parser 问题:android java.lang.IndexOutOfBoundsException:没有这样的设备
- angular - 单击垫子按钮时如何更改背景颜色 - Angular?
- r - R中PMG分析中的不平衡面板错误
- sql - 连接两张表,保留第一张表SQL的完整结构
- airflow - Apache Scheduler 无法正常工作 - 即使在重新启动网络服务器后
- java - 将 JFrame 中的所有内容渲染为 BufferedImage,然后处理此图像
- r - 使用for循环将数字转换为字符串
- r - 在阈值内将连续时间组合在一起以获得 R 中的 TimeGroup 输出
- java - 线程“main”中的异常 java.lang.NoClassDefFoundError 原因:java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
- python - Azure 函数/事件中心和 Blob 输出绑定。如何有效地保存消息(Python)