Docker Compose端口映射:127.0.0.1拒绝连接

时间:2018-11-14 13:20:02

标签: docker flask docker-compose

我目前正在使用Docker和一个简单的Flask网站,要将图像发送到该网站。为此,我正在使用端口8080,但是从docker到主机的映射无法正常工作,因为我无法连接。有人可以向我解释我在做什么错吗?

docker-compose.yml

version: "2.3"
services:
  dev:
    container_name: xvision-dev
    build:
      context: ./
      dockerfile: docker/dev.dockerfile
    working_dir: /app
    volumes:
      - .:/app
      - /path/to/images:/app/images
    ports:
      - "127.0.0.1:8080:8080"
      - "8080"
      - "8080:8080"

dev.dockerfile

FROM tensorflow/tensorflow:latest

WORKDIR /app

COPY requirements.txt ./
RUN pip install -r requirements.txt

RUN apt update && apt install -y python-tk

EXPOSE 8080

CMD ["python", "-u", "app.py"]

app.py

@APP.route('/test', methods=['GET'])
def hello():
    return "Hello world!"
def main():
    """Start the script"""
    APP.json_encoder = Float32Encoder
    APP.run(host="127.0.0.1", port=os.getenv('PORT', 8080))

我从docker-compose up开始我的docker,这给出了输出:Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)

但是当我对127.0.0.1:8080/test进行获取请求时,我得到了没有响应。

我也尝试了docker-compose run --service-port dev,因为有人在网上建议,但这表明没有服务开发者。

有人可以帮我解决我做错的事情吗?

1 个答案:

答案 0 :(得分:1)

使用:

APP.run(host="0.0.0.0", port=os.getenv('PORT', 8080))

仅使用:

ports:

  - "8080:8080"

足够