在ubuntu环境,利用docker安装tensorflow-serving

本文内容

  1. 安装docker,依据docker官方文档
  2. 安装tensorflow-serving
  3. 利用docker下载serving镜像

安装docker

docker分为社区版本(CE)和企业版本(EE),这里安装的为社区版本。
1、移除旧版本的docker

$ sudo apt-get remove docker docker-engine docker.io containerd runc

2、查看系统版本的内核大小,Docker 要求 Ubuntu 系统的内核版本高于 3.10 。

$ uname -a

安装 Docker ce 需要 16.04 及以上版本,

  • Cosmic 18.10
    Bionic 18.04 (LTS)
    Xenial 16.04 (LTS)

3、安装证书以及HTTPS传输的软件包

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

4、添加软件源的GPG密钥

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

5、验证下输入最后8个字符

$ sudo apt-key fingerprint 0EBFCD88

输出结果为:

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

6、设置稳定的存储库。添加或测试存储库

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

7、安装docker CE(下面的命令是安装最新版本的docker,如果想安装特定版本,按照上面给的官方文档)

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io

8、检查docker是否安装成功

$ sudo docker run hello-world

输出结果为:

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

安装成功。

9、指定docker下载网站,docker官网容易访问超时。

$ sudo gedit /etc/docker/daemon.json

添加:

{"registry-mirrors": ["http://74ecfe5d.m.daocloud.io"],
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

10、重新加载和启动

$ systemctl daemon-reload
$ systemctl restart docker

11、验证是否成功

$ sudo docker run hello-world

安装tensorflow-serving

安装gRPC,gRPC是基于定义一个服务,指定一个可以远程调用的带有参数和返回类型的的方法。在服务端,服务实现这个接口并且运行gRPC服务处理客户端调用。

1、安装gRPC依赖

$ sudo apt-get update && sudo apt-get install -y \
        build-essential \
        curl \
        libcurl3-dev \
        git \
        libfreetype6-dev \
        libpng12-dev \
        libzmq3-dev \
        pkg-config \
        python-dev \
        python-numpy \
        python-pip \
        software-properties-common \
        swig \
        zip \
        zlib1g-dev

2、安装grpc

$ pip install grpcio

3、安装 tensorflow-serving-api,pip安装缓慢,利用镜像加速

$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-serving-api

4、安装tensorflow-model-server

$ echo "deb [arch=amd64] http://storage.googleapis.com/tensorflow-serving-apt stable tensorflow-model-server tensorflow-model-server-universal" | sudo tee /etc/apt/sources.list.d/tensorflow-serving.list

$ curl https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg | sudo apt-key add -

$ sudo apt-get update

$ sudo apt-get install tensorflow-model-server

利用docker下载tensorflow-serving镜像

1、利用docker载入

$ sudo docker pull tensorflow/serving:latest-devel

2、查看docker安装好的镜像

$ sudo docker images

显示结果
3、利用tensorflow/serving创建容器

$ sudo docker run -it -p 8500:8500 tensorflow/serving:latest-devel

-it:使用终端,打开STDIN和容器交互。
-p:将容器内部使用的网络端口映射到我们使用的主机上。
显示结果

4、将本地的模型传入容器里,本地tensorflow训练的模型是固定化后的。(pb格式)

root@root: /home/user/saved_model$ tree

显示的上一层目录为save_model
在ubuntu终端,而不是tensorflow-serving创建的容器中。

$ sudo docker cp /home/user/save_model cbf9bae6cb51:/

显示结果:
显示结果
cbf9bae6cb51:创建tensorflow-serving时显示的container id,该id在创建时,会发生变化。具体固定方法看docker官方文档。

镜像退出后,所有操作都将清零,可以使用commit命令进行对现有镜像进行新的构建。在ubuntu终端

$ sudo docker commit cbf9bae6cb51 tensorflow/models

查看docker的镜像

$ sudo docker images

显示结果:
里面含有tensorflow/models
输入下面的代码,会重新启动tensorflow/serving容器,且复制的save_models模型不会消失。

$ docker run -it -p 8500:8500 tensorflow/models

5、在容器中,把模型开放出去。(运行tensorflow-serving服务)

$ tensorflow_model_server --port=8500 --model_name=mymodel --model_base_path=/save_model/

model_name:为名字,可自定义。
model_base_path:模型地址。

显示结果:
显示结果
在运行docker时会报一些错误,这时候把docker重启,就可以解决一些。

$ systemctl restart docker
$ docker start foo
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__JDM__

希望能得到您的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值