1.先弄一个tornado的项目
index.html
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<button id="send">发送请求</button>
<script>
$("#send").click(function () {
$.ajax({
type: 'POST',
url: "/ip",
success: function (response) {
alert(response);
}
});
})
</script>
</body>
</html>
main.py
import socket
import tornado.web
import tornado.ioloop
from tornado.options import define, options
define("port", default=38888, help="运行端口", type=int)
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("index.html")
class IpHandler(tornado.web.RequestHandler):
def post(self):
print('ip', self.request.remote_ip)
self.write(self.request.remote_ip)
if __name__ == "__main__":
app = tornado.web.Application(
[
(r"/", MainHandler),
(r"/ip", IpHandler),
],
)
app.listen(options.port)
print("http://{}:{}/".format(socket.gethostbyname(socket.getfqdn(socket.gethostname())), options.port))
tornado.ioloop.IOLoop.current().start()
使用pipreqs 导出requirements.txt文件
将当前项目使用的类库导出生成为 requirements.txt
pip install pipreqs
pipreqs ./ –encoding=utf8

2.创建一个Dockerfile的文件
编辑文件内容
#基于的基础镜像 FROM python:3.8.2 #代码添加到code文件夹 ADD . /code # 设置code文件夹是工作目录 WORKDIR /code # 安装支持 RUN pip install -r requirements.txt CMD ["python", "/code/app/main.py"]
将文件设置成下图的路径

cd 到 docker-test目录下然后 执行docker build -t tornado_test . 这里注意,tornado_test后面有一个 .
docker build -t tornado_test .

最后启动项目
--name指定容器名字 -p指定端口映射 -d后台运行 镜像名称 docker run -p 38888:38888 --name test_tornado -d tornado_test
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/244577.html