如何检查 Docker 是不是安装在 Unix shell 脚本中? [复制]

Posted

技术标签:

【中文标题】如何检查 Docker 是不是安装在 Unix shell 脚本中? [复制]【英文标题】:How to check if Docker is installed in a Unix shell script? [duplicate]如何检查 Docker 是否安装在 Unix shell 脚本中? [复制] 【发布时间】:2018-03-16 10:53:21 【问题描述】:

如果安装了 Docker(Ubuntu 服务器),我需要签入一个 shell 脚本。

我想出了这个,但语法不正确。

if [[ which docker && docker --version ]]; then
  echo "Update docker"
  # command
else
  echo "Install docker"
  # command
fi

我也试过if [ which docker ] && [ docker --version ]; then

【问题讨论】:

【参考方案1】:

这个对我有用:

if [[ $(which docker) && $(docker --version) ]]; then
    echo "Update docker"
    # command
  else
    echo "Install docker"
    # command
fi

【讨论】:

【参考方案2】:

使用 rickdenhaan 评论中答案的建议:

if [ -x "$(command -v docker)" ]; then
    echo "Update docker"
    # command
else
    echo "Install docker"
    # command
fi

【讨论】:

-x 是做什么的?对我来说if command -v docker; then 正在工作。 它测试文件是否存在并且是否可执行。 command 命令返回 docker 命令的位置,然后-x 标志测试它在那里并且能够执行。 括号是test 命令的别名。运行 man test 以查看所有标志及其描述。

以上是关于如何检查 Docker 是不是安装在 Unix shell 脚本中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在unix脚本中提取文件名的一部分并检查它是不是存在[重复]

如何检查 docker 引擎和 docker 容器是不是正在运行?

如何判断一台Centos中是不是已安装了docker-compose?

如何检查一个进程是不是在 docker 容器内运行?

Docker图像保存如何在加载前检查是不是存在?

如何检查 docker daemon 是不是正在运行?