docker python simplehhtpserver无法正常工作

时间:2017-08-09 09:44:06

标签: python python-2.7 docker dockerfile simplehttpserver

我的python代码

# _*_ coding:utf-8 _*_

from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
import SocketServer

class testHTTPSERVER_RequestHandler(BaseHTTPRequestHandler):

    def do_GET(self):

        self.send_response(200)
        self.send_header('Content-type','text/html')
        self.end_headers()

        self.wfile.write("<html><body><h1>Hello world</h1></body></html>")

def run(server_class=HTTPServer,handler_class=BaseHTTPRequestHandler):
    print('starting server ....')
    server_address = ('127.0.0.1',8081)
    httpd = server_class(server_address,testHTTPSERVER_RequestHandler)
    print('running server')
    httpd.serve_forever()

run()

和泊坞窗文件

FROM python:2.7-onbuild
#python:2.7.13-alpine dene
ADD testhttp_server.py /src/app/testhttp_server.py
WORKDIR /src/app/
EXPOSE 8081

CMD ["python","testhttp_server.py"]

docker run and logs

mozilla

所以我的错误在哪里?我在两天内完成了这项工作,但我没有找到其他的东西

1 个答案:

答案 0 :(得分:1)

更改此

server_address = ('127.0.0.1',8081)

server_address = ('0.0.0.0',8081)

在docker容器中侦听127.0.0.1意味着您只想侦听从容器内部生成的流量,但是当您将主机映射到容器时。它将流量从主机发送到容器的IP。哪个id动态并且事先不知道。所以你需要监听容器内的所有接口。这就是你应该使用0.0.0.0

的原因