Python 将文件传递给docker命令

Python 将文件传递给docker命令,python,opencv,docker,Python,Opencv,Docker,我正在尝试通过docker容器运行opencv。我已经构建了映像,并且在直接运行容器时 docker run-v/home/ganaraj/nndetect:/detect-ti-opecv3 bash 访问bash $>cd/检测/预测 $>prediction 1.jpg 0 我确实得到了我期望的输出(最终的0) 但我实际上希望将其作为命令行程序运行 我两者都试过了 docker run-v/home/ganaraj/nndetect:/detect-ti-opecv3/detect/pr

我正在尝试通过docker容器运行opencv。我已经构建了映像,并且在直接运行容器时

docker run-v/home/ganaraj/nndetect:/detect-ti-opecv3 bash

访问bash

$>cd/检测/预测
$>prediction 1.jpg
0

我确实得到了我期望的输出(最终的0)

但我实际上希望将其作为命令行程序运行

我两者都试过了

docker run-v/home/ganaraj/nndetect:/detect-ti-opecv3/detect/prediction/prediction 1.png

docker run-v/home/ganaraj/nndetect:/detect-ti-opecv3/detect/prediction/prediction/detect/prediction/1.png

但是这两个都不能提供我期望的结果

正确的方法是什么,这样我就可以像命令行工具一样(通过docker)轻松地运行这个应用程序并返回输出

我也试过了

docker run-v/home/ganaraj/nndetect:/detect-it-d opecv3 bin/bash

然后:

docker exec-it 3d618d6316c/detect/prediction/prediction/detect/prediction/1.png

但我还是得到了同样的回答

Client:
 Version:      1.8.3
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   f4bf5c7
 Built:        Mon Oct 12 05:37:18 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.3
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   f4bf5c7
 Built:        Mon Oct 12 05:37:18 UTC 2015
 OS/Arch:      linux/amd64

我终于让它工作了——但我不确定“为什么”这会让它工作。。如果有人解释了原因,请也加上

但我认为在这里发布最终解决方案可能是个好主意

我使用以下命令启动容器:

docker run-v/home/ganaraj/nndetect:/detect-w/detect/prediction-it-d opecv3 bash

现在我可以用这个命令进行预测,效果很好

docker exec-它决定了\u rosalind./prediction 1.png

docker exec是

docker exec
的主要用例是调试正在运行的容器,
docker exec
基本上适用于“例外”情况

当您想要执行一个命令(这里是python程序)时,最好只为该命令运行一个容器

alias dr='docker run -v /home/ganaraj/nndetect:/detect -w /detect/prediction -it --rm opecv3'
这样,在主机上不安装python的情况下,只需键入以下内容即可使用
determined\u rosalind

dr ./prediction 1.png

这将启动一个容器来运行python程序,退出并被删除(
--rm
选项)。

为什么
/detect/prediction/prediction
?为什么不
/detect/prediction/prediction
对不起。稍后我将其用作
/detect
。。但是,由于我复制粘贴了我的历史记录,我将旧版本粘贴到了这里。。改变它。我在想这个。。但只是不知道实现这一目标的确切方法。。我是docker的新手,最初我通过运行docker run几次启动了很多docker实例。。--rm选项解决了所有这些问题。。这是最直观的运行方式。。泰。