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  xx@qq.com

ADD ./mnist_testdemo /code

WORKDIR /code

EXPOSE 8000

RUN pip install -r /code/requirements.txt

CMD ["python", "/code/main.py"]



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

注意:

pip无法下载tensorflow(由于tf太大,一旦网络不好,就会下载失败),所以把它也设为base(即基础镜像,基础镜像需事先在本地下好,docker pull xxx)

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

WORKDIR /code 指定工作目录

一开始,我准备用conda 来下载库,但一直报错,说连不到网站什么的,只能用pip,这里卡了我好久(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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小牛呼噜噜

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值