使用Python在Docker镜像中构build一个简单的HTTPServer

我有一个docker镜像正在运行,但是我没有pipe理权限,因为他们是由pipe理员给我们的。

我想从Python脚本运行一个简单的HTTP服务器。 脚本如下:

import SimpleHTTPServer import SocketServer as socketserver import os import threading class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): path_to_image = 'RGBWebcam1.png' img = open(path_to_image, 'rb') statinfo = os.stat(path_to_image) img_size = statinfo.st_size print(img_size) def do_HEAD(self): self.send_response(200) self.send_header("Content-type", "image/png") self.send_header("Content-length", img_size) self.end_headers() def do_GET(self): self.send_response(200) self.send_header("Content-type", "image/png") self.send_header("Content-length", img_size) self.end_headers() f = open(path_to_image, 'rb') self.wfile.write(f.read()) f.close() class MyServer(socketserver.ThreadingMixIn, socketserver.TCPServer): def __init__(self, server_adress, RequestHandlerClass): self.allow_reuse_address = True socketserver.TCPServer.__init__(self, server_adress, RequestHandlerClass, False) if __name__ == "__main__": HOST, PORT = "172.17.0.2", 9999 server = MyServer((HOST, PORT), MyHandler) server.server_bind() server.server_activate() server_thread = threading.Thread(target=server.serve_forever) server_thread.start() while(1): print "test" 

我用ifconfig查找了IP地址,但是当连接到Docker Image(它是一个141.19地址)时,它是一个不同的地址。 所以,现在如果我尝试访问页面,它不是在任何一个地址上都不可用。 有什么办法将它路由到“真正的”IP地址?