[英]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.