我仅在尚未运行的情况下才需要运行docker容器。给定此命令。如果它不存在,我将如何运行它。
docker run --name nginx -d nginx
我可以使用任何脚本或语言。
使用过滤器检查是否存在特定名称的容器:( 请参阅docker ps Filterring)
#!/bin/bash name='nginx' [[ $(docker ps -f "name=$name" --format '{{.Names}}') == $name ]] || docker run --name "$name" -d nginx
该docker run如果第一部分是假的,才执行。
docker run
为了安全起见(docker ps可能会返回多个名称),您也可以选择这样做(如果您认为“ nginx”一词不能作为任何容器名称的一部分):
docker ps
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