docker python simplehttpserver 不工作
docker python simplehhtpserver not working
我的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 run and logs
mozilla
所以我的错误在哪里?我在这两天里一直在努力,但我没有发现任何其他东西
改变这个
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
我的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 run and logs
mozilla
所以我的错误在哪里?我在这两天里一直在努力,但我没有发现任何其他东西
改变这个
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