无法将localhost与Docker容器一起使用

时间:2020-01-27 04:53:01

标签: docker

我在stackoverflow和github上尝试了其他答案,但是它们都不起作用。 当我运行容器时 I get this as the output(Which is the standard "flask run" output)

这是我的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,但它不起作用。

2 个答案:

答案 0 :(得分:0)

运行此命令以了解主机的IP地址。 boot2docker ip

现在使用此IPAddress以及映射到主机的端口号。

例如,生成运行Web进程之类的容器的容器时,您需要指定要从该容器发布到主机的端口,例如

docker run -p 8888:8080 tomcat

这会将端口 8080 从容器发布到主机的端口 8888

答案 1 :(得分:0)

  1. 您可以通过Dockerfile公开端口或使用--expose和 然后使用-P标志进行发布。这会将裸露的端口绑定到 您的Docker主机在随机端口上(通过运行docker进行验证 容器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