首页 > 解决方案 > 无法将 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 但它不起作用。

标签: docker

解决方案


  1. 您可以通过 Dockerfile 公开端口或使用 --expose 然后使用 -P 标志发布它。这会将暴露的端口绑定到随机端口上的 Docker 主机(通过运行 docker container ls 进行验证)。

  2. 您可以通过 Dockerfile 或使用 --expose 公开端口,然后使用 -p 80:80 标志发布它。这会将暴露的端口绑定到端口 80 上的 Docker 主机,并且它期望暴露的端口也是 80(根据需要使用 HOST:CONTAINER 进行调整)。

  3. 您可以忽略公开任何内容而只使用 -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

推荐阅读