簡體   English   中英

無法從Docker中的主機訪問webapp

[英]Not being able to access webapp from host in Docker

我有一個簡單的Web項目,我想對其進行“ Dockerize”處理,但始終無法將Webapp暴露給主機。 我的Dockerfile看起來像:

FROM debian:jessie

RUN apt-get update -y && \
    apt-get install -y python-pip python-dev curl && \
        pip install --upgrade pip setuptools

COPY ./requirements.txt /app/requirements.txt

WORKDIR /app

RUN pip install -r requirements.txt

COPY . /app

WORKDIR /app/web

和requirements.txt看起來像:

PasteScript==2.0.2
Pylons==1.0.2

Web目錄是使用以下命令構建的:

paster create --template=pylons web

最后是start_server.sh:

#!/bin/bash

paster serve --daemon development.ini start

現在我可以用:

docker build -t webapp .

然后運行命令:

docker run -it -p 5000:5000 --name app webapp:latest /bin/bash

然后在docker容器中運行:

bash start_server.sh

它成功在端口5000上啟動了webapp,如果我在docker容器中卷曲,則會得到預期的響應。 此外,容器已啟動並以正確的端口映射運行:

bc6511d584ae        webapp:latest       "/bin/bash"         2 minutes ago       Up 2 minutes               0.0.0.0:5000->5000/tcp   app

現在,如果我運行docker port app看起來不錯:

5000/tcp -> 0.0.0.0:5000

但是我無法從主機收到來自服務器的任何響應:

curl localhost:5000

我可能在這里誤解了一些東西,但是對我來說似乎很好。

在您的dockerfile中,您需要添加EXPOSE 5000您的端口映射是正確的,將其視為打開容器上的端口,然后使用-p將其與localhost映射

在評論中回答

當您將make_server綁定到0.0.0.0而不是localhost時

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM