golang导出docker镜像

Posted Live in the moment

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang导出docker镜像相关的知识,希望对你有一定的参考价值。

1. 下载镜像

// downloadDockerImage imageTagName := "k8s.gcr.io/etcd:3.5.0-0"
func downloadDockerImage(imageTagName string) (string, error) 
    // 要执行的命令
    _, dockerFileName := filepath.Split(imageTagName)
    dockerCommand := fmt.Sprintf("docker save -o %s.tar %s", dockerFileName, imageTagName)
    cmd := exec.Command("bash", "-c", dockerCommand)
    // CombinedOutput-->捕获异常跟命令输出的内容
    output, err := cmd.CombinedOutput()
    if err != nil 
        return "", err
    
    return string(output), nil

2. 单元测试

package internal

import "testing"

func TestOutputDockerImage(t *testing.T) 
    type args struct 
        imageTagName string
    
    tests := []struct 
        name    string
        args    args
        want    string
        wantErr bool
    
        
            name: "test output images",
            args: args
                imageTagName: "nginx:1.14-alpine",
            ,
            want:    "",
            wantErr: false,
        ,
    
    for _, tt := range tests 
        t.Run(tt.name, func(t *testing.T) 
            got, err := downloadDockerImage(tt.args.imageTagName)
            if err != nil 
                t.Fatal(err)
            
            t.Log(got)
        )
    

 

以上是关于golang导出docker镜像的主要内容,如果未能解决你的问题,请参考以下文章

docker镜像导出

docker容器的导出和导入

Docker 镜像-管理-导入-导出

使用新版Golang1.18多段构建制作docker镜像的踩坑经历

Docker镜像的导出和导入,打标签,提交到本地仓库

制作Docker生产镜像/Golang+Java+TensorFlow算法引擎