当前位置: 首页 > 面试题库 >

如果尚未运行docker容器,如何运行

丁茂
2023-03-14
问题内容

我仅在尚未运行的情况下才需要运行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 ps可能会返回多个名称),您也可以选择这样做(如果您认为“ nginx”一词不能作为任何容器名称的一部分):

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容器尚未运行时,我才需要运行它。给了这个命令。如果它不存在,我将如何运行它。 我对任何脚本或语言都持开放态度。

  • 可以移除不运行的容器吗? 我知道,例如,这将从创建的图像中删除容器 但我想知道如何移除那些没有运行的

  • 问题内容: 在旧版Docker for Windows中,我记得它明确表示它使用Linux VM作为内核。 但自从新的稳定版本(我认为是2016年7月发布)以来,它说 如果我理解正确,则指定的基本映像用于用户空间,并且使用主机的内核。因此,如果指定使用ubuntu基本映像运行echo命令,则Windows内核如何发挥作用? 还是我完全误会了什么? 问题答案: 适用于Windows的Docker仍使

  • 我已经在我的主机虚拟机上安装了docker。现在想用vi创建一个文件。 但它向我展示了一个错误:

  • 问题内容: 我正在研究Centos7。我有一个运行Jenkins的Docker容器。在那个Jenkins容器中,我必须构建并运行其他Docker容器。但是詹金斯不认识码头工人。我能够执行一个shell并将docker安装在容器中。但是,是否有可能让容器在主机上使用我的docker- engine?如何使用? 在Jenkins-(docker)-容器中安装Docker的最佳选择是什么? 问题答案:

  • 我很难弄明白这一点。 所以我有一个基于Ubuntu映像的dockerfile。在我的dockerfile的末尾,我有: 什么都没发生..docker ps显示没有正在运行的容器 但如果我跑: 容器开始运行,我在shell中,docker ps显示这个容器正在运行。所有工作都按预期进行,但我的django项目不在那里,我的理解是运行/bin/bash会覆盖dockerfile中的CMD,这意味着dj