GO:exec.Command()执行进入docker容器的指令:docker exec containerId sh -c “指令 && 指令“

1、docker exec  containerId  sh -c "指令 && 指令"

output := RunCommand("docker ps|grep nf-oam") //查询名称为nf-oam的容器
containerId := strings.Split(output, "   ")[0]  //获取容器ID
enterIdOutput := RunCommand("docker exec " + containerId + " sh -c \"cd /nfoam/etc/ && ls\"")//进入容器并执行切换目录和查询该目录下的文件。

import (
	"os/exec"
	"runtime"
	"strings"
)


output := RunCommand("docker ps|grep nf-oam")
containerId := strings.Split(output, "   ")[0]
enterIdOutput := RunCommand("docker exec " + containerId + " sh -c \"cd /nfoam/etc/ && ls\"")

func RunCommand(cmd string) string {
	if runtime.GOOS == "windows" {
		return runInWindows(cmd)
	} else {
		return runInLinux(cmd)
	}
}

func runInLinux(cmd string) string {
	log.Info("Running Linux cmd:", cmd)
	result, err := exec.Command("/bin/sh", "-c", cmd).Output()
	log.Info("err", err)
	if err != nil {
		log.Error(err.Error())
	}
	return string(result)
}

func runInWindows(cmd string) string {
	log.Info("Running Win cmd:", cmd)
	result, err := exec.Command("cmd", "/c", cmd).Output()
	if err != nil {
		log.Error(err.Error())
	}
	return string(result)
}
docker exec

你可能感兴趣的:(Go)