2016-10-17 152 views
-1

我需要在Windows機器上使用Tensorflow。我已經安裝了Docker,並遵循這兩個教程(https://runnable.com/docker/python/dockerize-your-python-applicationhttps://civisanalytics.com/blog/engineering/2014/08/14/Using-Docker-to-Run-Python/),我試圖運行我的Python腳本。我的Dockerfile與第一個教程中的Dockerfile幾乎相同,只是安裝了Tensorflow而不是安裝pystrich。我已經成功地製作了一個名爲python-stuff的Docker鏡像,並且我創建了一個名爲my_script.py的腳本,它只導入Tensorflow,然後打印Hello world。爲什麼我的Python腳本不能使用Docker運行?

當我運行命令docker run python-stuff python my_script.py時,我沒有得到任何錯誤,但腳本不會產生任何輸出。有任何想法嗎?

編輯:我Dockerfile:如果你想看到直列輸出,嘗試添加--tty--interactive(或-ti的簡稱)選項

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-stuffError: No such container: python-stuff

+1

發佈你的Dockerfile,你的容器的Docker日誌 – user2915097

+1

'python-stuff'是你的鏡像的名稱,而不是容器運行'docker ps- -all',你會看到al的ID l已退出容器。然後運行'docker logs b6a11' - 或者最近一次容器的ID號。另外:你期望輸出什麼?您的腳本是否生成文件或寫入控制檯? –

+0

好的。運行碼頭日誌'什麼都不產生。該腳本只導入Tensorflow並將「Hello world」打印到控制檯。 – TAsk

回答

0

我修好了!問題只是CMD中的'./'在Dockerfile中刪除並重新構建它解決了這個問題

1

。這將爲您在控制檯上從容器提供標準輸出,並通過標準輸入與您的腳本進行交互。

另一種運行方式是--detach,它將在後臺運行。如果你這樣做了,Docker會將容器ID打印到控制檯,然後你可以運行docker logs ${ID}(用打印的ID替換${ID}),看看你的腳本寫到stdout的當前輸出。如果你想避免使用生成的長ID,你可以在你的容器中添加--name foo選項,添加一個名字,可以用在docker logs foo之類的命令中。

+0

謝謝!但是,我仍然沒有從我的程序中獲得任何輸出。不知道它是否在運行。 – TAsk

相關問題