【问题标题】:how to execute a python program (with args) that uses docker container?如何执行使用 docker 容器的 python 程序(带 args)?
【发布时间】:2022-01-20 10:01:18
【问题描述】:

首先,我可能提出的问题不准确,如有必要,请随时修改。

虽然我对 docker 及其所有东西都很陌生,但不知何故设法在我的 Win 11 笔记本电脑上创建了一个图像 (v2) 和一个容器 (cont)。我有一个 demo.py 需要一个 .mp4 文件作为参数。

现在,如果我想运行 demo.py 文件,1) 我转到项目的文件夹(demo.py生活),2) 打开 cmd 并 3) 运行:docker start -i cont。这将容器启动为:

root:834b2342e24c:/project#

然后,我应该将 4) my_video.mp4 从本地项目文件夹复制到容器的 project/data 文件夹(使用另一个 cmd)作为如下:

docker cp data/my_video.mp4 cont:project/data/.

然后我运行:5) python demo.py data/my_video.mp4。过了一会儿,它在容器的数据文件夹中制作了两个文件:my_video_demo.mp4my_video.json。同样,我应该将它们复制回我的本地项目文件夹:6)

docker cp cont:project/data/my_video_demo.mp4 data/, docker cp cont:project/data/my_video_demo.json data/

只有这样我才能转到我的本地 project/data 文件夹并检查文件。 我希望能够只运行一个执行 4) - 6) 的特定命令。 我已经阅读了有关-v 选项的信息,在我的情况下,它将是(?)-v /data:project/data,但我不知道如何继续。

有可能做我想做的事吗?如果一切都清楚,我希望得到您的支持。谢谢。

【问题讨论】:

  • Docker 可能不是您所描述的正确工具,因为容器通常无法访问容器外部的文件。你可以改用Python virtual environment 吗?
  • 我很乐意,但demo.py 需要 Linux 的依赖项,而不是 Windows。我尝试在 Windows 上构建项目,但失败了:D.

标签: python docker cmd windows-11


【解决方案1】:

您确实应该使用 Docker 卷。下面的命令应该可以做到。

docker run -it -v /data:project/data v2

【讨论】:

  • 1.它在哪里运行demo.py 文件? 2. 输出文件在哪里创建?
【解决方案2】:

嗯,我想我已经想出了一个处理它的方法。

我了解到使用-v 可以创建一个在本地主机和容器之间共享的位置。您需要做的就是运行 docker 并提供-v,如下所示:

docker run --gpus all -it -v C:/Workspace/project/data:/project/data v2:latest python demo.py data/my_video_demo.mp4

--gpus - 要添加到容器中的 GPU 设备('all' 表示通过所有 GPU);

-it - 告诉 docker 它应该打开一个交互式容器实例。

请注意,每次运行此命令时,由于-it 标志,它将创建一个新容器。

部分归功于 @bill27

【讨论】:

    猜你喜欢
    • 2019-11-26
    • 1970-01-01
    • 2018-12-12
    • 2016-08-31
    • 1970-01-01
    • 2022-07-07
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多