docker+paddle+fastapi+gunicorn 镜像制作,测试以及推到远程仓库
docker+paddle+fastapi+gunicorn 镜像制作,测试以及推到远程仓库
docker+paddle+fastapi+gunicorn 镜像制作,测试以及推到远程仓库
1.启动docker服务(首先要保证装了docker哈)
service docker start
2.基础镜像获取
从百度飞浆官网拉取基础镜像环境,并构建镜像进入容器:
https://www.paddlepaddle.org.cn/install/quickdocurl=/documentation/docs/zh/install/docker/linux-docker.html

拉取预安装 PaddlePaddle 的镜像:
docker pull registry.baidubce.com/paddlepaddle/paddle:2.6.1-gpu-cuda11.2-cudnn8.2-trt8.0
启动镜像
docker run registry.baidubce.com/paddlepaddle/paddle:2.6.1-gpu-cuda11.2-cudnn8.2-trt8.0
查看镜像状态
docker ps -a
用镜像构建并进入Docker容器:
docker run -itd --name
docker run itd --name 新建容器名 镜像名称
docker run itd --name event_extract registry.baidubce.com/paddlepaddle/paddle:2.6.1-gpu-cuda11.2-cudnn8.2-trt8.0
进入容器
docker exec -it 容器名 /bin/bash
docker exec -it event_extract /bin/bash
3.安装其他依赖包
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
4.从容器创建一个新镜像
docker commit -m “容器描述” -a “作者信息” 容器ID 镜像名:版本号
其中容器ID是步骤1中你进入的容器ID,也是你在里面装了依赖的容器,镜像名:版本号,自己取名字,这个镜像就可以作为一个的部署代码的base镜像。
示例:docker commit -m “事件抽取算法基础镜像” -a “tm” eventextract:base
5.编辑dockerfile文件
整个结构如下:
EE-API(你的代码工程)
Dockerfile(dockerfile文件)
#1、从基础镜像开始
FROM eventextract:base
# 2、将当前工作目录设置为 /EE-API
WORKDIR /EE-API
# 3、复制 FastAPI 项目代码
COPY ./EE-API/ /EE-API/
# 4、容器对外暴露的端口
EXPOSE 8080
# 5、运行服务
CMD ["gunicorn","-w","4", "-b","0.0.0.0:8080","-k","uvicorn.workers.UvicornWorker","event_main:app"]
6. 创建最终镜像
在 Dockerfile 文件所在位置,打开命令行
docker build -t 创建的镜像名称 .(注意末尾的空格和. 不可以少)
docker build -t eventextract:v1 .
7.测试容器是否制作成功以及服务是否正常起起来
docker run -d --name eventextract_container -p 8080:8080 eventextract:v1
docker run -dit --gpus ‘“device=1”’ -p 8233:8080 eventextract:v1(指定运行的GPU,端口映射)然后在接口测试服务是否有正常的结果返回
8. 把制作好的镜像推送到远程镜像仓库
#登录远程Docker Registry
docker login -u 用户名 -p 密码 远程仓库地址
#打标签,将本地镜像标记为远程仓库的路径(为了好区分,哪些镜像是被推到哪里去了)
docker tag 本地镜像名:标签 远程仓库地址/仓库名/镜像名:标签
#推送镜像到远程仓库
docker push 远程仓库地址/仓库名/镜像名:标签
9.一些经常用的命令及问题
启动/停止容器: docker start/stop 容器id
查看镜像:docker images |grep 关键词(容器太多情况下,可根据关键词筛选查看部分镜像)
查看容器:docker ps -a |grep 关键词(同上)
删除容器:docker rm 容器id
删除镜像:docker rmi 镜像id
报错没有权限,就在每个命令前面加上sudo
容器不可以有相同名称,镜像可以有,镜像相同名称就是覆盖源镜像
更多推荐
所有评论(0)