【日常总结】docker项目流程

一、前言

最近做项目,结合fastapi做服务器的后端部署,用到了docker,故边学边探索。本文为项目中涉及docker的项目总结记录,以便后续查阅。

二、步骤

  1. dockerfile文件
    Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
# 拉取python3.6.2基础镜像
FROM python:3.6.2

# 设置docker工作目录
WORKDIR /data/fastapi 

# 把当前目录内容复制到docker工作目录
COPY . /data/fastapi

# 构建容器时运行的命令,建立一个pip下载源,升级pip,按requirements.txt安装相关依赖
RUN apt-get update && apt install libgl1-mesa-glx -y  # 这里为缺的一些包
RUN mkdir ~/.pip&& mv /data/fastapi/pip.conf ~/.pip/pip.conf && pip install --upgrade pip && pip install -r requirements.txt
# RUN while read requirement; do pip3 install $requirement; done < requirements.txt

# 在启动容器时,运行下面的命令
# CMD [ "/bin/bash"]  # 可以先用这个命令检测包是否完安装依赖,后再运行程序。这可以正常运行容器,进入容器后,查看运行程序所缺的包
CMD [ "python", "view.py"]  # run时启动
  1. docker本地测试命令流程
docker build -t style_transfer:v1.0 . # 写好Dockerfile文件后,开始构建名字为style_transfer版本为v1.0 在当前目录
docker images # 镜像查询
docker run --rm -it -p10006:10006 style_transfer:v1.0  # 映射docker端口到本地端口,运行镜像
docker save style_transfer:v1.0 > style_transfer_v1.0.tar # 导出镜像包
  1. 部署命令
1. 启动
## 导入镜像
(root)# docker load -i style_transfer_v1.0.tar
## docker run 运行容器fastapi 
(root)# docker run -itd --restart=always --name style_transfer -p10006:10006 style_transfer:v1.0  
2. 查看容器运行状态
(root)# docker ps|grep style_transfer
  1. 上传dockerhub,这样内外网都可以拉取镜像
1.在dockerhub网页登录账号,创建仓库
(root)# username/style_transfer  # username为docker账号id
2.将要上传的文件进行标签
(root)# docker tag style_transfer:v1.0 username/style_transfer:v1.0
4. 登录dockerhub账号
(root)# docker login 
5. 上传镜像
(root)# docker push username/style_transfer:v1.0

三、readme文件

说明文档

0. 部署、启动服务

工业云平台部署

  • 服务器地址:10.2.20.161
1. 启动
## 导入镜像
(root)# docker load -i style_transfer_v1.0.tar
## docker run 运行容器fastapi 
(root)# docker run -itd --name style_transfer -p10006:10006 style_transfer:v1.0  
2. 查看容器运行状态
(root)# docker ps|grep style_transfer

1. 风格转换接口

  • 接口: http://10.2.20.161:10006/style_transfer

  • 请求方式: POST

  • 数据类型:multipart/form-data

  • 请求参数:upload_file、urlflag、style_number

    请求参数说明

    变量名称类型是否为必选备注
    upload_filemutipart/form-dataupload_file和urlflag二选一上传图片文件,支持png/jpg格式,图片最短边大于80px,最长边小于1920px
    urlflagmutipart/x-w-www-form-urlencodeupload_file和urlflag二选一图片的url地址,支持png/jpg格式,图片最短边大于80px,最长边小于1920px
    style_numbermutipart/x-w-www-form-urlencode“0”, “1”, “2”, “3” 这个四个参数的一种,每个参数代表不同的风格转换模型,传值为空则默认"0”模型

2.返回参数说明

  • 返回形式例子

    {
    	"code": 200,
    	"msg": "style transfer succeed",
    	"result_img": img_b64
    }
    
  • 返回参数

    变量名称类型备注
    codeapplication/json状态码
    msgapplication/json状态信息
    result_imgapplication/jsonbase64编码的图片数据
  • 状态码说明

    状态码响应信息状态
    101too large image size图片太大
    102too small image size图片太小
    200style transfer succeed风格转换成功
    300not found ‘upload_file’ fileds没有图片文件
    303url request errorurl请求失败
    304style_number request errorstyle_number 传入参数不符合要求

3.文件结构

.
├── checkpoint # 模型文件,共4种模型
│   ├── img_1
│   ├── scream
│   ├── star
│   └── udnie
├── dhy_logging.py # 日志文件
├── Dockerfile  # dockerfile文件
├── docs.md  # 文档,各程序的说明
├── evaluate_hy.py  # 评估文档
├── examples  # 例子 
│   ├── content  # 例子图片目录
│   ├── fox.mp4  
│   ├── jaguar.mp4
│   ├── results  # 生成的图片,以及视频
│   ├── style  # 不同风格产生的图片
│   └── thumbs
├── log.md  # 产生的日志文件
├── models  # 模型
├── pip.conf  # pip 配置
├── readme.md
├── README.md
├── re.md
├── requirements.txt  # 安装环境
├── setup.sh
├── src  # 资源文件
│   ├── optimize.py
│   ├── optimize.pyc
│   ├── transform.py
│   ├── utils.py
│   ├── vgg.py
│   └── vgg.pyc
├── style_app.py
├── style.py  # 风格训练文件
├── transform_video.py  # 视频转换文件
└── view.py  # fastapi启动文件

4.其他说明,本地测试

  • 流程
    1.用viw.py启动程序,类似于开服务器,注意uvicorn.run设置开启的端口号,此处设置的为10006,后面需要把docker的端口号映射出去。
    2.(用另外一个终端)开启test.py用来测试(注意端口号要和uvicorn.run设置开启的端口号一致)
    
  • docker 流程命令总结
    docker build -t style_transfer:v1.0 . # 写好Dockerfile文件后,开始构建名字为style_transfer版本为v1.0 在当前目录
    docker images # 镜像查询
    docker run --rm -it -p10006:10006 style_transfer:v1.0  # 映射docker端口到本地端口,运行镜像
    docker save style_transfer:v1.0 > style_transfer_v1.0.tar # 导出镜像包
    
  • test 测试流程
    工具:postman 
    请求方式选择:post
    数据选择
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值