如果尚未运行docker容器,如何运行 [英] How to run a docker container if not already running

查看:878
本文介绍了如果尚未运行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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆