2-1_Docker_Images_CN.md 5.8 KB
Newer Older
S
ShiningZhang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
# Docker 镜像安装

本文档介绍基于标准镜像环境的安装流程。

## 获取镜像

**一. CPU/GPU 镜像:**

您可以通过两种方式获取镜像。

1. 通过 TAG 直接从 dockerhub 或 `registry.baidubce.com` 拉取镜像,具体 TAG 请参见下文的镜像说明章节的表格**

   ```shell
   docker pull registry.baidubce.com/paddlepaddle/serving:<TAG> 
   ```

2. 基于 Dockerfile 构建镜像**

   建立新目录,复制对应 Dockerfile 内容到该目录下 Dockerfile 文件。执行

   ```shell
   docker build -f tools/${DOCKERFILE} -t <image-name>:<images-tag> .
   ```

若需要基于源代码二次开发编译,请使用后缀为 -devel 的版本。


|                         镜像选择                         |   操作系统    |             TAG              |                          Dockerfile                          |
| :----------------------------------------------------------: | :-----: | :--------------------------: | :----------------------------------------------------------: |
|   CPU development     | Ubuntu16 |         0.8.0-devel         |        [Dockerfile.devel](../tools/Dockerfile.devel)         |
|   GPU (cuda10.1-cudnn7-tensorRT6-gcc54) development   | Ubuntu16 | 0.8.0-cuda10.1-cudnn7-gcc54-devel (not ready) | [Dockerfile.cuda10.1-cudnn7-gcc54.devel](../tools/Dockerfile.cuda10.1-cudnn7-gcc54.devel) |
|  GPU (cuda10.1-cudnn7-tensorRT6) development  | Ubuntu16 | 0.8.0-cuda10.1-cudnn7-devel | [Dockerfile.cuda10.1-cudnn7.devel](../tools/Dockerfile.cuda10.1-cudnn7.devel) |
|  GPU (cuda10.2-cudnn7-tensorRT6) development  | Ubuntu16 | 0.8.0-cuda10.2-cudnn7-devel | [Dockerfile.cuda10.2-cudnn7.devel](../tools/Dockerfile.cuda10.2-cudnn7.devel) |
| GPU (cuda10.2-cudnn8-tensorRT7) development  | Ubuntu16 | 0.8.0-cuda10.2-cudnn8-devel | [Dockerfile.cuda10.2-cudnn8.devel](../tools/Dockerfile.cuda10.2-cudnn8.devel) |
|  GPU (cuda11.2-cudnn8-tensorRT8) development  | Ubuntu16 | 0.8.0-cuda11.2-cudnn8-devel | [Dockerfile.cuda11.2-cudnn8.devel](../tools/Dockerfile.cuda11.2-cudnn8.devel) |
|   CPU Runtime |Ubuntu 16|0.8.0-runtime||
|   GPU (cuda10.1-cudnn7-tensorRT6) Runtime |Ubuntu 16|0.8.0-cuda10.1-cudnn7-runtime||
|   GPU (cuda10.2-cudnn8-tensorRT7) Runtime |Ubuntu 16|0.8.0-cuda10.2-cudnn8-runtime||
|   GPU (cuda11.2-cudnn8-tensorRT8) Runtime |Ubuntu 16|0.8.0-cuda11.2-cudnn8-runtime||

**二. Java 镜像:**
```
docker pull registry.baidubce.com/paddlepaddle/serving:0.8.0-cuda10.2-java
```

**三. XPU 镜像:**
```
docker pull registry.baidubce.com/paddlepaddle/serving:xpu-arm # for arm xpu user
docker pull registry.baidubce.com/paddlepaddle/serving:xpu-x86 # for x86 xpu user
```

**四. ROCM 镜像:**
```
docker pull paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11 # for x86 rocm user
```

**五. NPU 镜像:**
```
docker pull paddlepaddle/paddle:latest-dev-cann5.0.2.alpha005-gcc82-aarch64 # for arm ascend910 user
docker pull registry.baidubce.com/paddlepaddle/serving:ascend-aarch64-cann3.3.0-paddlelite-devel # for arm ascend310 user
```

## 使用 pip 安装

本节将介绍使用 pip 的安装方式。
以下示例中 GPU 环境均为 cuda10.2-cudnn7

**一. 启动开发镜像**

S
ShiningZhang 已提交
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
   **CPU:**

   ```
   # 启动 CPU Docker
   docker pull paddlepaddle/serving:0.8.0-devel
   docker run -p 9292:9292 --name test -dit paddlepaddle/serving:0.8.0-devel bash
   docker exec -it test bash
   git clone https://github.com/PaddlePaddle/Serving
   ```
   
   **GPU:**

   ```
   # 启动 GPU Docker
   docker pull paddlepaddle/serving:0.8.0-cuda10.2-cudnn7-devel
   nvidia-docker run -p 9292:9292 --name test -dit paddlepaddle/serving:0.8.0-cuda10.2-cudnn7-devel bash
   nvidia-docker exec -it test bash
   git clone https://github.com/PaddlePaddle/Serving
   ```
S
ShiningZhang 已提交
89 90 91

**二. 安装所需的 pip 依赖**

S
ShiningZhang 已提交
92 93 94 95
   ```
   cd Serving
   pip3 install -r python/requirements.txt
   ```
S
ShiningZhang 已提交
96 97 98 99 100

**三. 安装服务 whl 包**

   共有3种 client、app、server,Server 分为 CPU 和 GPU,GPU 包根据您的环境选择一种安装

S
ShiningZhang 已提交
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
   - post102 = CUDA10.2 + Cudnn7 + TensorRT6(推荐)
   - post101 = CUDA10.1 + TensorRT6
   - post112 = CUDA11.2 + TensorRT8

   ```
   pip3 install paddle-serving-client==0.8.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
   pip3 install paddle-serving-app==0.8.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
   
   # CPU Server
   pip3 install paddle-serving-server==0.8.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
   
   # GPU Server,需要确认环境再选择执行哪一条,推荐使用CUDA 10.2的包
   pip3 install paddle-serving-server-gpu==0.8.3.post102 -i https://pypi.tuna.tsinghua.edu.cn/simple 
   pip3 install paddle-serving-server-gpu==0.8.3.post101 -i https://pypi.tuna.tsinghua.edu.cn/simple
   pip3 install paddle-serving-server-gpu==0.8.3.post112 -i https://pypi.tuna.tsinghua.edu.cn/simple
   ```

   默认开启国内清华镜像源来加速下载,如果您使用 HTTP 代理可以关闭(`-i https://pypi.tuna.tsinghua.edu.cn/simple`)
S
ShiningZhang 已提交
119 120

**四. 安装 Paddle 相关 Python 库**
S
ShiningZhang 已提交
121 122 123 124
   **当您使用`paddle_serving_client.convert`命令或者`Python Pipeline 框架`时才需要安装。**
   ```
   # CPU 环境请执行
   pip3 install paddlepaddle==2.2.2
S
ShiningZhang 已提交
125

S
ShiningZhang 已提交
126 127 128 129
   # GPU CUDA 10.2环境请执行
   pip3 install paddlepaddle-gpu==2.2.2
   ```
   **注意**: 如果您的 Cuda 版本不是10.2,或者您需要在 GPU 环境上使用 TensorRT,请勿直接执行上述命令,需要参考[Paddle-Inference官方文档-下载安装Linux预测库](https:/paddleinference.paddlepaddle.org.cn/master/user_guides/download_lib.html#python)选择相应的 GPU 环境的 url 链接并进行安装。
S
ShiningZhang 已提交
130 131

**五. 安装完成后的环境检查**
S
ShiningZhang 已提交
132
   当以上步骤均完成后可使用命令行运行环境检查功能,自动运行 Paddle Serving 相关示例,进行环境相关配置校验。
S
ShiningZhang 已提交
133

S
ShiningZhang 已提交
134 135 136
   ```
   python3 -m paddle_serving_server.serve check
   ```
S
ShiningZhang 已提交
137

S
ShiningZhang 已提交
138
   详情请参考[环境检查文档](./Check_Env_CN.md)