Python 如何在Docker';s容器
我想在docker容器上运行Python HTTP服务器 我的Python 如何在Docker';s容器,python,bash,docker,simplehttpserver,Python,Bash,Docker,Simplehttpserver,我想在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 insta
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
http://192.168.99.100:9989/
什么也没发生。我也尝试过在我的DockerFile
的末尾添加EXPOSE 9998
,但没有任何帮助
如果我在主机上输入docker machine
地址:
http://localhost:9998
http://192.168.99.100:9989/
它起作用了。但我希望在常规服务器上运行该映像,而不是在本地计算机上运行—所以所有内容都应该向本地主机公开
我在Windows7上试过了
你知道怎么做吗
我将非常高兴你的帮助 这可能有关联,也可能没有关联,但我无法添加评论,因此您会得到一个独立的回复 在Docker容器中,您可能必须将应用程序绑定到
0.0.0
主机
在我看来(尽管我必须了解更多关于应用程序的信息才能确定),您正在寻找回环接口上的连接。这将仅向本地计算机公开侦听器。相反,
0.0.0.0
用于将侦听器公开给计算机上的所有网络接口。特别是在这种情况下,docker网络适配器。有关更详细的解释,请参见您描述的是正常行为。Docker映像在虚拟化环境中运行,因此无法共享环回地址。您需要做的是将流量从服务器重定向到docker映像
应该有你需要的所有答案
祝你好运 来自
-p expose选项也可以采用ip地址。如果您还想绑定到127.0.0.1,那么它就在那里
尝试类似这样的操作:-p 127.0.0.1:9998:9998