飞桨模型部署至docker并使用FastAPI调用(一)-docker安装与vscode连接

飞桨模型部署至docker并使用FastAPI调用

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 所在路径。
  • 测试:启动后,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

参考文献

  1. Docker 命名容器
  2. 镜像加速器
  3. Windows 10上安装Docker Desktop 并启用Kubernetes
  4. 关于服务器通过Python搭建API服务
  5. vscode远程连接docker容器

版权声明:
作者:MWHLS
链接:https://mwhls.top/4074.html
来源:无镣之涯
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>