Docker部署OCR服务

181 阅读7分钟

本文档机器环境 Linux webserver 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

OCR镜像链接:pan.baidu.com/s/1yhj2h_Ge… 提取码:wdi9

CPU版本

编辑docker-compose.yml文件

sudo vim docker-compose.yml

# 在Docker Compose的版本2.2及以上,`version`字段已经不再使用
version: "3"

services:

  ppdocr:
    image: drainkeng/paddleocr:2.6-cpu-latest
    container_name: ppdocr
    environment:
      - TZ=Asia/Shanghai
    ports:
      - "8868:8866"

创建启动容器

sudo docker compose up -d

OCR测试

接口地址:http://ip:8868/predict/ocr_system 数据类型:application/json 请求参数示例:

{
    "images": [
        "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"
    ]
}

GPU版

服务器需要有GPU卡 docker-compose.yml文件如下,这里启动了5个容器OCR服务 要使用GPUDocker版本需要19.3之后,否则需安装nvidia-docker

# 在Docker Compose的版本2.2及以上,`version`字段已经不再使用
version: "3"

x-pocr-gpu: &pocr-gpu
    image: drainkeng/paddleocr:2.6-cpu-latest
    command: /bin/bash -c "hub install deploy/hubserving/ocr_system/ && hub serving start -c deploy/hubserving/ocr_system/config.json"
    # 指定容器退出后的重启策略为始终重启。该命令对保持服务始终运行十分有效,在生产环境中推荐配置为 always 或者 unless-stopped
    restart: always
    environment:
        # 指定容器内可见的gpu卡示例: CUDA_VISIBLE_DEVICES: 0,1
        CUDA_VISIBLE_DEVICES: 0
        # 时区
        TZ: Asia/Shanghai
    volumes:
        # 时区
        - /etc/localtime:/etc/localtime

services:
    pocr-gpu-1:
        <<: *pocr-gpu
        container_name: pocr_gpu1
        ports:
            - "8968:8868"
    pocr-gpu-2:
        <<: *pocr-gpu
        container_name: pocr_gpu2
        ports:
            - "8969:8868"
    pocr-gpu-3:
        <<: *pocr-gpu
        container_name: pocr_gpu3
        ports:
            - "8970:8868"
    pocr-gpu-4:
        <<: *pocr-gpu
        container_name: pocr_gpu4
        ports:
            - "8971:8868"
    pocr-gpu-5:
        <<: *pocr-gpu
        container_name: pocr_gpu5
        ports:
            - "8972:8868"