1. 程式人生 > >docker部署anaconda管理的tensorflow專案

docker部署anaconda管理的tensorflow專案

繼上一節搭好環境,先找個小demo練練手


目錄

1、首先保證程式碼能在本地成功執行

2、匯出該專案的依賴

3、將上面的檔案全部移入centos7虛擬機器中

4、編寫dockerfile

5、執行dockerfile

6、檢視生成的映象

7、以守護程式建立並啟動容器

8、測試

9、補充


 

這是慕課網上的例子https://www.imooc.com/video/17243

1、首先保證程式碼能在本地成功執行

本地已有python開發環境(pythonpip 等)

專案原始碼:https://github.com/zj827622690/tensorflow_mnist-demo

2、匯出該專案的依賴

雖然我們專案的庫是由anaconda管理的,但我們這裡還是用pip來匯出專案配置(這裡我會在後面來解釋)

tensorflow_mnist-demo目錄下

pip freeze > requirements.txt

 

 

3、將上面的檔案全部移入centos7虛擬機器中

並改名mnist_testdemo

虛擬機器用到是VMware,需裝好docker,很簡單這裡就略了

4、編寫dockerfile

FROM python:3.7

FROM tensorflow/tensorflow:nightly

MAINTAINER zj  
[email protected]
ADD ./mnist_testdemo /code WORKDIR /code EXPOSE 8000 RUN pip install -r /code/requirements.txt CMD ["python", "/code/main.py"]

-------------------

注意:pip無法下載tensorflow,所以把它也設為base

ADD ./mnist_testdemo /code 中 /code是別名

WORKDIR /code 指定工作目錄

一開始,我準備用conda 來下載庫,但一直報錯,說連不到網站什麼的,只能用pip,這裡卡了我好久

5、執行dockerfile

docker build -t mnist_testdemo .

發現報錯

大概意思找不到numpy==1.13.3
opencv-python==3.4.0.12

 

然後我將requirements.txt相應部分的版本號去掉,如下

numpy

open-python

flask

記得把flask加上去,因為我們專案需要它打成restful api

(第一次執行時間可能有點長,可以倒杯咖啡~~)

6、檢視生成的映象

docker images

7、以守護程式建立並啟動容器

docker run -d --name python-demo –p 8000:8000 mnist_testdemo:latest

第一次,發現容器沒有成功執行

 

docker logs 容器id 來檢視docker日誌

發現報錯,大概是說找不到目錄檔案C:\\Python-demo-project\\mnist_testdemo\\mnist\\mnist_log

 

這裡我一開始是在win10環境下,現在是在linux環境下,當然會出錯了

# summay_writer = tf.summary.FileWriter("C:\\Python-demo-project\\mnist_testdemo\\mnist\\mnist_log", sess.graph)

summay_writer = tf.summary.FileWriter("mnist_testdemo/mnist/mnist_log", sess.graph)

改好了這後

再執行一次

成功:

8、測試

ip+埠

9、補充

刪除容器 docker rm 容器id

刪除映象 docker rmi 映象id