docker部署anaconda管理的tensorflow專案
阿新 • • 發佈:2018-11-28
繼上一節搭好環境,先找個小demo練練手
目錄
這是慕課網上的例子https://www.imooc.com/video/17243
1、首先保證程式碼能在本地成功執行
本地已有python開發環境(python,pip 等)
專案原始碼:https://github.com/zj827622690/tensorflow_mnist-demo
2、匯出該專案的依賴
雖然我們專案的庫是由anaconda管理的,但我們這裡還是用pip來匯出專案配置(這裡我會在後面來解釋)
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