首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在码头容器中重新运行脚本

在码头容器中重新运行脚本
EN

Stack Overflow用户
提问于 2019-07-05 11:13:37
回答 2查看 1.9K关注 0票数 0

我已经创建了一个包含一些python代码和一个可以执行它的shell脚本的docker映像。它将处理来自主机系统的大量图像。

这个命令应该创建一个新的竞争者并运行它。

代码语言:javascript
复制
sudo docker run -v /host/folder:/container/folder opencv:latest bash /extract-embeddings.sh

在最后,容器退出。如果输入相同的命令,则创建另一个容器并在完成时退出。但是如何正确使用容器呢?我应该使用重新启动、启动或运行(然后清理退出的容器之后)吗?每次创建一个新容器似乎是不必要的。

基本上,我只想要一个包含一些代码和3-4个不同命令的对接映像,我可以随时执行。

而docker命令似乎不接受"bash / accept Embeddings.sh“作为参数,相反,bash和提取-Embeddings.sh是容器。因此,也许我误解了容器的生命周期或使用。

编辑:

把它做好了:

代码语言:javascript
复制
docker run -t -d --name opencv -v /host/folder:/container/folder
docker exec -it opencv bash /extract-embeddings.sh
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-05 11:34:19

您可以编写Dockerfile来创建您的docker映像,并将脚本保存在其中-

文档:

代码语言:javascript
复制
FROM opencv:latest
COPY ./your-script /some_folder

创建图像:

代码语言:javascript
复制
docker build -t my_image .

运行您的容器:

代码语言:javascript
复制
docker run -d --name my_container

在容器内运行脚本:

代码语言:javascript
复制
docker exec -it <container_id_or_name> bash /some_folder/your-script
票数 1
EN

Stack Overflow用户

发布于 2019-07-05 11:21:07

构建以opencv:opencv开头的自己的对接器映像,并将运行的命令作为入口点提供。Dockerfile可能就像

代码语言:javascript
复制
FROM opencv:latest
CMD ["/bin/bash", "/extract-embeddings.sh"]

使用docker create创建命名容器。

代码语言:javascript
复制
sudo docker create --name=processmyimage -v /host/folder:/container/folder myopencv:latest

然后,每次您想要运行它时,都使用docker。

代码语言:javascript
复制
sudo docker start processmyimage

如果您只想运行一个命令,这是很好的。如果有多个命令,我将采用构建一个永远运行不相关命令的映像的方法(比如尾部-f < /dev/null)。然后可以使用exec -d /bin/bash <>

对于每个命令

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56901977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档