如何以编程方式检查docker机器是否存在?

时间:2015-06-10 14:15:29

标签: bash docker docker-machine

我正在使用docker-machine来管理我的云服务器。我正在编写一些bash脚本来自动执行某些任务。问题是:“如果已存在具有特定名称的docker机器,如何检入bash脚本?”。我需要一些表达式,如果它存在则返回true,如果不存在则返回false。

由于

3 个答案:

答案 0 :(得分:13)

如果正则表达式足够好,只需通过grep运行即可。例如,如果你有一台名为foo的机器:

extension UIView {
    func addTopBorderWithColor(color: UIColor, width: CGFloat) {
        let border = CALayer()
        border.backgroundColor = color.cgColor
        border.frame = CGRect(x: 0, y: 0, width: self.frame.size.width, height: width)
        self.layer.addSublayer(border)
    }

    func addRightBorderWithColor(color: UIColor, width: CGFloat) {
        let border = CALayer()
        border.backgroundColor = color.cgColor
        border.frame = CGRect(x: self.frame.size.width - width, y: 0, width: width, height: self.frame.size.height)
        self.layer.addSublayer(border)
    }

    func addBottomBorderWithColor(color: UIColor, width: CGFloat) {
        let border = CALayer()
        border.backgroundColor = color.cgColor
        border.frame = CGRect(x: 0, y: self.frame.size.height - width, width: self.frame.size.width, height: width)
        self.layer.addSublayer(border)
    }

    func addLeftBorderWithColor(color: UIColor, width: CGFloat) {
        let border = CALayer()
        border.backgroundColor = color.cgColor
        border.frame = CGRect(x: 0, y: 0, width: width, height: self.frame.size.height)
        self.layer.addSublayer(border)
    }
}

应该工作并返回0.插入符号匹配行的开头,空格避免部分匹配。如果不匹配,您将获得非零返回码。

答案 1 :(得分:9)

您可以使用以下内容:

docker-machine status some-machine 2> /dev/null || echo "Machine does not exists"

答案 2 :(得分:1)

不是脚本大师,但我会做一个“docker-machine help”,如果此命令运行且退出代码($?)为零,则docker-machine可执行文件可用且正常运行。 如果返回代码为127(通常由bash发现未找到命令)或非零以外的任何内容,则可以假设未安装docker-machine或未正常运行。