Go语言的实战案例:Docker容器化
package main
import (
"fmt"
"os"
"os/exec"
)
// 定义Docker命令的封装函数
func runDockerCommand(args ...string) error {
cmd := exec.Command("docker", args...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}
func main() {
// 获取命令行参数
if len(os.Args) < 2 {
fmt.Println("请提供操作指令,如 build, run, stop 等。")
return
}
command := os.Args[1]
// 根据命令执行对应的Docker操作
switch command {
case "build":
err := runDockerCommand("build", "."); if err != nil {
fmt.Println("Docker 构建失败:", err)
}
case "run":
err := runDockerCommand("run", "-p", "8080:8080", "myapp"); if err != nil {
fmt.Println("Docker 运行失败:", err)
}
case "stop":
err := runDockerCommand("stop", "myapp"); if err != nil {
fmt.Println("Docker 停止失败:", err)
}
default:
fmt.Println("未知的操作指令:", command)
}
}
这段代码演示了如何在Go语言中使用os/exec
包来执行Docker命令。它定义了一个runDockerCommand
函数来封装执行Docker命令的逻辑,并在main
函数中根据命令行参数调用相应的Docker操作。这样的设计可以使代码更加模块化和易于扩展。
评论已关闭