在Jenkins机器上,我只想创建一个具有指定名称的docker容器(如果它不存在)(在shell脚本中)。我以为我可能会运行该命令来创建容器,而忽略存在该容器的失败,但这会导致我的詹金斯工作失败。
因此,我想知道如何检查docker容器是否存在或不使用bash。
您可以通过grepping a检查是否存在正在运行的容器,<name>
然后像下面这样启动它:
[ ! "$(docker ps -a | grep <name>)" ] && docker run -d --name <name> <image>
更好:
利用https://docs.docker.com/engine/reference/commandline/ps/并检查是否存在退出的容器,因此您可以在运行容器之前先将其删除:
if [ ! "$(docker ps -q -f name=<name>)" ]; then
if [ "$(docker ps -aq -f status=exited -f name=<name>)" ]; then
# cleanup
docker rm <name>
fi
# run your container
docker run -d --name <name> my-docker-image
fi
问题内容: 我有2张桌子- : 第二张桌子- : 我只需要选择未取消的预订(在此示例中仅为ID 3)。我可以轻松地选择带有简单条件的已取消,但由于未在此处取消工作,因此我在努力避免未取消。 问题答案: 要么: 第一个版本更直观,但是我认为第二个版本通常可以获得更好的性能(假设您在联接中使用的列上有索引)。 第二个版本有效,因为返回第一个表中所有行的一行。当条件成功,这些行会包括从第二表中的列,就像
问题内容: 当我跑步时,我得到了 insane_kirch6 的名字是什么? 问题答案: 你能说出你自己的容器,当您使用。如果您不提供名称,则Docker会生成与您所拥有的名称相同的随机名称。 在“ 旧版”容器链接中 查看其命名文档,命名 的重要性
问题内容: 我创建了一个容器,因此它不是交互式的。 我看到容器已退出: 现在,我想在计算机上偶尔运行命令并退出。只是为了得到回应。 我试图启动机器。我尝试附加。我以为我可以用一个容器打电话,但这似乎是不允许的。使用似乎可以运行,然后迅速存在。 我想退出后回到互动模式。 我试过了: 但是我得到: 但是,如果我启动它,它仍然会退出。赶上22.我赢不了。 问题答案: 在2014年10月,Docker团队
我看到容器已经退出: 现在我想偶尔在机器上运行命令并退出。只是为了得到回应。 我试着开动机器。我试着连接。我以为可以用容器调用,但这似乎不允许。使用似乎只是运行然后快速存在。
我想知道操作系统是如何管理Docker容器的。我可以在这里找到一些解释:https://stackoverflow.com/a/47784145/11377751,但我不能很好地理解。 我知道操作系统的基本知识(关于PCB、ram、CPU、内核、系统调用等的概念)。 但我不明白操作系统是如何管理容器的: 容器是进程还是被Docker引擎(这是唯一的进程,有线程)模拟的?如何在RAM中表示容器? 如
以下是日志输出: