如何使用dockerode NodeJS API提取已签名的docker镜像

时间:2016-06-23 00:02:27

标签: node.js docker

我有一个节点js应用程序,它执行基本的docker操作,如pull image,create,run,start和stop docker containers。我正在使用dockerode库。 我想强制执行只允许被提取的受信任签名图像。 根据docker文档,设置env变量DOCKER_CONTENT_TRUST = 1。这是不可行的,因为我正在远程调用docker。

在命令行上观察:在未设置DOCKER_CONTENT_TRUST = 1的情况下,使用标志--disable-content-trust = false将仅强制下载受信任的图像。

[root@vm ~]# echo $DOCKER_CONTENT_TRUST

[root@vm ~]# docker pull --disable-content-trust=false docker/trusttest
Using default tag: latest
no trust data available
[root@vm ~]# 

但是,使用dockerode api从节点js调用时没有效果

这是节点代码:

function pullImage(imageId){
    return new Promise((resolve, reject)=>{
        docker.pull(imageId,{"disable-content-trust":"false"},(err,stream)=>{
            if(err){
                console.error("Docker pull failed for:" + imageId + "error:" + err);
                reject(err);
            }else 
                console.log("Docker image installed: " + imageId);
                resolve(true);
            }
        });
    });
}


pullImage('docker/trusttest',{}).then((v)=>{
    console.log("pull image successful", v);
}).catch((ex)=>{
    console.error("exception in pull image", ex);
});

即使disable-content-trust = false,此代码也会下载图像。 问题是我是否正确地将选项参数传递给docker.pull? 我无法找到dockerode的选项参数值的文档。 任何帮助深表感谢。

链接: https://docs.docker.com/engine/security/trust/content_trust/

https://github.com/apocas/dockerode

0 个答案:

没有答案