如果尚未运行docker容器,如何运行 [英] How to run a docker container if not already running
本文介绍了如果尚未运行docker容器,如何运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
仅当泊坞容器尚未运行时,我才需要运行它.给定此命令.仅当它不存在时,我将如何运行它.
I need to run a docker container only if its not already running. Given this command. How would I run it only if it does not exists.
docker run --name nginx -d nginx
我可以使用任何脚本或语言.
I am open to any script or language.
推荐答案
使用过滤器检查特定名称的容器是否存在:
(请参见 docker ps Filterring )
Use a filter to check if a container of a certain name exists:
(See docker ps Filterring)
#!/bin/bash
name='nginx'
[[ $(docker ps -f "name=$name" --format '{{.Names}}') == $name ]] ||
docker run --name "$name" -d nginx
仅当第一部分为假时,才会执行docker run
.
The docker run
will only be executed if the first part is false.
为了安全起见(docker ps
可能返回多个名称),您也可以选择这样做(如果您认为"nginx"一词不能作为任何容器名称的一部分):
To be on the safe side (docker ps
might return several names), you might alternatively do (if you think the word "nginx" can't be part of any container name):
if ! docker ps --format '{{.Names}}' | grep -w nginx &> /dev/null; then
docker run --name nginx -d nginx
fi
或者:
if ! docker ps --format '{{.Names}}' | egrep '^nginx$' &> /dev/null; then
docker run --name nginx -d nginx
fi
这篇关于如果尚未运行docker容器,如何运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文