使用Python

时间:2017-04-24 20:27:54

标签: python docker port simplehttpserver

我运行了一个docker镜像,但由于管理员将它们提供给我们,因此无法访问管理。

我想从Python脚本运行一个简单的HTTP-Server。该脚本如下:

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-Adress但是它与我在连接到Docker Image时使用的地址不同(它是141.19 ...地址)。所以现在,如果我尝试访问该页面,则两个地址都不可用。有没有办法将它路由到'真正的'IP地址?

0 个答案:

没有答案