docker工人pythonsimplehhtpserver不能正常工作
我的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()
和docker文件
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运行和日志
Mozilla浏览器
所以我的错误在哪里呢?我在这两天的工作,但我没有find其他的东西
改变这一点
server_address = ('127.0.0.1',8081)
至
server_address = ('0.0.0.0',8081)
在Docker容器中监听127.0.0.1
意味着您只想监听容器内部产生的stream量,但是只能将主机映射到容器。 它从主机发送stream量到容器的IP。 哪个iddynamic,不知道之前。 所以你需要听听容器内的所有接口。 这就是为什么你应该使用0.0.0.0