我正在尝试通过 docker 容器运行 opencv。我已经构建了图像并直接运行容器
docker run -v/home/ganaraj/nndetect:/detect -ti opecv3 bash
并访问 bash
$>cd/检测/预测
$>预测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 3d618d63316c/检测/预测/预测/检测/预测/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 exec 是 mainly for debugging purpose .
The primary use case of
docker exec
is debugging running containers,
docker exec
basically is for "exceptional" cases
当你想执行一个命令(这里是一个Python程序)时,最好只为该命令运行一个容器。
alias dr='docker run -v /home/ganaraj/nndetect:/detect -w /detect/prediction -it --rm opecv3'
这样,无需在主机上安装 python,您只需输入以下内容即可使用 dependent_rosalind
:
dr ./prediction 1.png
这将启动 transient 容器运行python程序,退出并被删除(--rm
选项)。
关于python - 将文件传递给 docker 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33218064/