gpt4 book ai didi

Docker 运行命令创建容器(如果不存在)

转载 作者:行者123 更新时间:2023-12-04 02:34:29 25 4
gpt4 key购买 nike

docker 新手,我正在尝试在 TFS/azure devops 构建过程中从 docker hub 运行“selenoid”容器。第一次执行有效,但在接下来的执行中,我收到一个冲突错误(容器已存在该名称)。
在这里阅读了几篇文章后,我明白我有两个解决方案:

1/保留运行命令,但在再次运行之前在该容器上执行“rm”命令。

2/确定容器是否已经存在并在下一次构建运行中使用“开始”。

对于第一个解决方案,我想每次删除/重新创建该容器并不是真正高效的?
我想到了第二个,但是制作一个脚本来检查容器是否存在,然后使用 start 或 run 也有点复杂。

那么是不是有一个简单的“运行”选项/标志可以改变“运行”命令的行为,以便它仅在需要时创建容器然后启动它?

另外,我本可以制作一个脚本来完成这项工作,但我更喜欢在这里问它,因为也许我没有理解使用容器的正确方法(如果我是唯一一个要求该选项的人,我可能已经错过了某物...)

最佳答案

Docker 容器是短暂的。你旋转它们,它们做它们的事,它们死去,它们被移除(并且不消耗资源)。

除非容器正在初始化数据库或其他一些启动时需要很长时间的东西,或者您需要维护状态(没有卷挂载),否则最简单的方法就是使用 --rm 运行它。标志,以便当它完成时它会自行移除。
docker run --rm --name mycontainer image:tag
当然,正如上面已经评论过的那样。如果您需要在容器运行时执行它,您通常只会费心命名容器。由于它似乎只是运行并退出,因此这可能是不必要的。

当然,这并不是说您不能拥有长期运行的容器。但如果他们自然退出,那么他们通常应该被清理,而不是跳过箍再次开始相同的。

关于Docker 运行命令创建容器(如果不存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62465835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com