我需要在我的Windows机器上使用Tensorflow。我已经安装了Docker,并且遵循这两个教程(https://runnable.com/docker/python/dockerize-your-python-application和https://civisanalytics.com/blog/engineering/2014/08/14/Using-Docker-to-Run-Python/),我正在尝试运行我的Python脚本。我的Dockerfile几乎与第一个教程中的相同,只是不是安装pystrich,而是安装Tensorflow。我已经成功创建了一个名为python-stuff的Docker镜像,并且我创建了一个名为my_script.py的脚本,它只导入Tensorflow然后打印Hello world。
当我运行命令docker run python-stuff python my_script.py
时,我没有得到任何错误,但脚本不会产生任何输出。有什么想法吗?
编辑:我的Dockerfile:
FROM python:3
ADD my_script.py /
RUN pip3 install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0-cp35-cp35m-linux_x86_64.whl
CMD ["python", "./my_script.py"]
正在运行docker logs python-stuff
会产生Error: No such container: python-stuff
答案 0 :(得分:2)
我修好了!问题只是Dockerfile中CMD行中的'./'。删除它并再次构建它解决了这个问题。
答案 1 :(得分:1)
如果您想查看内联输出,请尝试添加--tty
和--interactive
(或简称为-ti
)选项。这将通过控制台上的容器为您提供stdout,并通过stdin与您的脚本进行交互。
另一种运行方式是--detach
,它将在后台运行。如果这样做,Docker会将容器ID打印到控制台,然后您可以运行docker logs ${ID}
(用已打印的ID替换${ID}
,以查看脚本写入的当前输出stdout。如果您想避免使用长的生成ID,可以将--name foo
选项添加到容器中,以添加可在docker logs foo
等命令中使用的名称。