Web 服务器未在主机上显示 - Docker
Webserver not showing at host - Docker
我无法访问容器外的应用程序,当我在容器内 exec
并执行 curl localhost:8000 时,它正在显示,但同一应用程序未反映在主机浏览器中。任何帮助,将不胜感激。
main.py
#!/usr/bin/env python
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import urlparse
import json
class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
parsed_path = urlparse(self.path)
self.send_response(200)
self.end_headers()
self.wfile.write(json.dumps({
'myfavourite author name': 'shakespear',
}).encode())
returnx
if __name__ == '__main__':
server = HTTPServer(('localhost', 8000), RequestHandler)
print('Starting server at http://localhost:8000')
server.serve_forever()
Docker 文件
FROM python:latest
COPY . ./
RUN pip install -r requirements.txt
EXPOSE 8000
CMD python main.py
requirements.txt
urllib3
httpserver
您的程序需要绑定到 0.0.0.0 才能接受来自容器外部的连接。像这样
if __name__ == '__main__':
server = HTTPServer(('0.0.0.0', 8000), RequestHandler)
print('Starting server at http://0.0.0.0:8000')
server.serve_forever()
我无法访问容器外的应用程序,当我在容器内 exec
并执行 curl localhost:8000 时,它正在显示,但同一应用程序未反映在主机浏览器中。任何帮助,将不胜感激。
main.py
#!/usr/bin/env python
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import urlparse
import json
class RequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
parsed_path = urlparse(self.path)
self.send_response(200)
self.end_headers()
self.wfile.write(json.dumps({
'myfavourite author name': 'shakespear',
}).encode())
returnx
if __name__ == '__main__':
server = HTTPServer(('localhost', 8000), RequestHandler)
print('Starting server at http://localhost:8000')
server.serve_forever()
Docker 文件
FROM python:latest
COPY . ./
RUN pip install -r requirements.txt
EXPOSE 8000
CMD python main.py
requirements.txt
urllib3
httpserver
您的程序需要绑定到 0.0.0.0 才能接受来自容器外部的连接。像这样
if __name__ == '__main__':
server = HTTPServer(('0.0.0.0', 8000), RequestHandler)
print('Starting server at http://0.0.0.0:8000')
server.serve_forever()