使用容器之前需先安装docker,使用阿里云镜像源:
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
docker 启动:
sudo systemctl start docker
停止:
sudo systemctl stop docker
列出所有容器:docker ps -a
列出所有镜像:docker images -a
删除镜像:docker rmi [镜像名称或者镜像ID]
有了docker 之后 下载镜像
更改镜像下载目录,先停止镜像,然后直接编辑以下文件:
vi /etc/docker/daemon.json
然后在里面 加入:路径自己修改
{ "data-root": "/data/docker" }
如果不自定义镜像,可以不用创建Dockerfile ,否则创建个Dockerfile 然后在当前目录下创建镜像,然后在基于镜像创建容器
cd /home/Projects
# 创建一个名字为ppocr的docker容器,创建的同时会自动下载镜像,并将当前目录映射到容器的/paddle目录下
CPU:
sudo docker run --name ppocr -v $PWD:/paddle --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.1.3-gpu-cuda10.2-cudnn7 /bin/bash
GPU:
sudo nvidia-docker run --name ppocr -v $PWD:/paddle --shm-size=64G --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.1.3-gpu-cuda10.2-cudnn7 /bin/bash
进入容器:
sudo docker attach ppocr #这种方式进入 退出可以直接使用命令:exit,退出之后容器正常运行
sudo docker container exec -it ppocr /bin/bash #这种方式进入 如果exit退出容器会停止,需要快捷键退出Ctrl+P+Q
# 构建Docker镜像
docker build -t [容器名称] .
# 运行Docker容器 ,5100 为容器对外开放的端口
docker run -p 5100:5100 [容器名称]
---------------------------------------------------
列出容器:
docker ps -a
删除容器:
删除之前需要先停止正在运行的容器
docker stop <容器ID或容器名称>
docker rm <容器ID或容器名称>
自定义构建容器的做法--------------------------------------------
FROM registry.baidubce.com/paddlepaddle/paddle:2.6.1
RUN pip3 install --no-cache-dir --upgrade pip -i https://pypi.doubanio.com/simple
RUN pip3 install --no-cache-dir paddlehub --upgrade -i https://pypi.doubanio.com/simple
RUN git clone https://gitee.com/PaddlePaddle/PaddleOCR.git /PaddleOCR
WORKDIR /PaddleOCR
RUN pip3 install --no-cache-dir -r requirements.txt -i https://pypi.doubanio.com/simple
RUN mkdir -p /PaddleOCR/inference/
# 下载并解压 OCR 文本检测模型
ADD https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_infer.tar /PaddleOCR/inference/
# 下载并解压 OCR 文本方向分类模型
ADD https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_mobile_v2.0_cls_infer.tar /PaddleOCR/inference/
# 下载并解压 OCR 文本识别模型
ADD https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_rec_infer.tar /PaddleOCR/inference/
RUN tar xf /PaddleOCR/inference/ch_PP-OCRv4_det_infer.tar -C /PaddleOCR/inference/
RUN tar xf /PaddleOCR/inference/ch_ppocr_mobile_v2.0_cls_infer.tar -C /PaddleOCR/inference/
RUN tar xf /PaddleOCR/inference/ch_PP-OCRv4_rec_infer.tar -C /PaddleOCR/inference/
RUN pip3 uninstall -y astroid
RUN pip3 install astroid==2.12.2 --upgrade pip -i https://pypi.doubanio.com/simple
RUN pip3 uninstall protobuf
RUN pip3 install protobuf==3.20.0 --upgrade pip -i https://pypi.doubanio.com/simple
# 安装ocr\_system服务
RUN hub install deploy/hubserving/ocr_system/
# 安装表格识别,下载基于SLANet的中文表格识别模型,如果只需要文本提取,则可以不安装该服务,删掉这一块即可
ADD https://paddleocr.bj.bcebos.com/ppstructure/models/slanet/en_ppstructure_mobile_v2.0_SLANet_infer.tar /PaddleOCR/inference/
ADD https://paddleocr.bj.bcebos.com/ppstructure/models/slanet/ch_ppstructure_mobile_v2.0_SLANet_infer.tar /PaddleOCR/inference/
RUN tar xf /PaddleOCR/inference/en_ppstructure_mobile_v2.0_SLANet_infer.tar -C /PaddleOCR/inference/
RUN tar xf /PaddleOCR/inference/ch_ppstructure_mobile_v2.0_SLANet_infer.tar -C /PaddleOCR/inference/
#安装structure\_table服务
RUN hub install deploy/hubserving/structure_table/
#COPY ./py_app /PaddleOCR/py_app
#RUN pip install gunicorn -i https://mirror.baidu.com/pypi/simple
#RUN pip install flask -i https://mirror.baidu.com/pypi/simple
EXPOSE 5100
CMD ["/bin/bash","-c","hub serving start -m ocr\_system structure\_table"]
#CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5100", "app:app"]