【发布时间】:2017-04-05 13:19:55
【问题描述】:
我想在 docker 容器上运行 Python HTTP 服务器。
我的DockerFile 看起来像这样:
FROM continuumio/anaconda3:latest
RUN apt-get -y update
RUN apt-get -y install linux-headers-amd64 build-essential libc-dev gcc
RUN conda install --yes gcc
RUN conda install --yes numpy
RUN conda install --yes scipy
RUN conda install --yes gensim
RUN pip install annoy
RUN conda config --add channels conda-forge
RUN conda install --yes spacy
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
ADD my-app.tar /usr/src/app
WORKDIR /usr/src/app/source
我使用以下方法构建图像:
docker build -t my-app-poc .
启动容器并输入命令:
docker run -i -t -p 9998:9998
在 Docker 映像的 bash 中,我运行脚本:
python Service.py
正确启动:
Wed Apr 5 13:09:51 2017 Server Starts - :9998
但是当我在主机上输入地址时:
http://localhost:9998
什么都没有发生。我也试过将EXPOSE 9998 放在DockerFile 的末尾,但没有帮助。
如果我在主机上输入docker-machine 地址:
http://192.168.99.100:9989/
它有效。但我想在常规服务器上运行该映像,而不是在我的本地计算机上运行 - 所以所有内容都应该暴露给 localhost。
我在 Windows 7 上试过。
你知道如何运行它吗?
我会很高兴得到您的帮助!
【问题讨论】:
标签: python bash docker simplehttpserver