飞桨模型部署至docker并使用FastAPI调用(一)-docker安装与vscode连接
Windows docker 下载
安装 WSL
- 启动后会自动跳出窗口提示安装,安装后点击 Restart 即可。
无法打开设置
- 以管理员身份运行。
使用国内下载源
打开 Settings - Docker Engine
- 原json:
{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "features": { "buildkit": true } }
- 添加镜像站后:
{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "features": { "buildkit": true }, "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com" ] }
示例教程
- 执行教程时记得切换下目录,不然是在终端打开的默认目录中进行的
- 教程里面有些步骤包含两条命令,执行之后记得确认命令是否全部执行完成,或者直接多按几次回车键。
Python Docker 安装
- Python 3.8.13-slim
- 说明文档
- 获取镜像:
docker pull python:3.8.13-slim
- 大小:124.11 MB
- 镜像转容器:
docker run --name PDRS -ti python:3.8.13-slim /bin/bash
- 退出容器:
exit
- 查看容器 ID:
docker container ls -a
- 以 root 身份启动:
docker exec -u 0 -it 21ce830a7d27 /bin/sh
- 查看容器大小:
docker ps --size
vscode 链接至 docker
具体流程见: vscode远程连接docker容器
- 写的很简单易懂,不过我感觉他的标题起的不对,应该是本地连接docker。
终端操作:使用 Ctrl+Shift+~ 打开终端。
fastapi 安装
注:这一步我做的时候忘写了,这是后来补上的,如果出错,建议参考这里:关于服务器通过Python搭建API服务
安装:
pip install fastapi uvicorn
main.py - fastapi 代码
# main.py, copy from http://www.zhangkexuan.cn/2020/11/01/about-python-api/ from fastapi import FastAPI app = FastAPI() @app.get('/') def index(): return {'message': '你已经正确创建 FastApi 服务!'}
执行:
uvicorn main:app -- reload
报错:
ERROR: Error loading ASGI app. Could not import module "main".
- 原因:为了方便测试,我用python
os.system('uvicorn main:app --reload')
来启动,但因为 vscode 的工作路径不对,所以报错如上。 - 解决方式:切换工作路径
os.chdir('./code_path')
,其中,./code_path
为 main.py 所在路径。
- 原因:为了方便测试,我用python
测试:启动后,vscode 会弹窗提示已经映射 docker 端口到宿主机,可通过 http://127.0.0.1:8000 打开,终端输出如下:
INFO: Will watch for changes in these directories: ['/root/code'] INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [10502] using statreload INFO: Started server process [10504] INFO: Waiting for application startup. INFO: Application startup complete. INFO: 127.0.0.1:33858 - "GET / HTTP/1.1" 200 OK
共有 0 条评论