Docker 码头工人中的詹金斯无法提取图像

Docker 码头工人中的詹金斯无法提取图像,docker,jenkins,groovy,Docker,Jenkins,Groovy,我已经在我的windows笔记本电脑上安装了oracle virtual box和docker toolbox。 我已经在docker内部创建了Jenkins容器。 詹金斯工作得很好。 但是,当我创建示例管道时,它失败了 以下是docker版本: Client: Version: 18.09.3 API version: 1.39 Go version: go1.12 Git commit: 774a1f4eee Built:

我已经在我的windows笔记本电脑上安装了oracle virtual box和docker toolbox。 我已经在docker内部创建了Jenkins容器。 詹金斯工作得很好。 但是,当我创建示例管道时,它失败了

以下是docker版本:

Client:
 Version:           18.09.3
 API version:       1.39
 Go version:        go1.12
 Git commit:        774a1f4eee
 Built:             Mon Mar  4 10:36:44 2019
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.1
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.5
  Git commit:       74b1e89e8a
  Built:            Thu Jul 25 21:27:55 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
以下是管道:

pipeline {

   agent {
        docker { image 'hello-world'  }
    }

    stages {
        stage('Test') {
            steps {
                sh 'docker version'
            }
        }
    }
}
错误如下:

java.io.IOException: Failed to run image 'hello-world'. Error: docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"cat\": executable file not found in $PATH": unknown.
    at org.jenkinsci.plugins.docker.workflow.client.DockerClient.run(DockerClient.java:138)
    at org.jenkinsci.plugins.docker.workflow.WithContainerStep$Execution.start(WithContainerStep.java:199)
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:286)
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:179)
    at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
    at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(Docker.groovy:126)
    at org.jenkinsci.plugins.docker.workflow.Docker.node(Docker.groovy:66)
    at org.jenkinsci.plugins.docker.workflow.Docker$Image.inside(Docker.groovy:114)
    at 
实际误差为

java.io.IOException: Failed to run image 'hello-world'. Error: docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"cat\": executable file not found in $PATH": unknown.

您的图像中没有docker,即hello world,
docker版本将假定在容器内运行

第二件事

steps {
                sh 'echo hello form container'
      }
运行bash或sh将无法运行hello word容器,因为这个容器是从头开始的,没有bash或sh。它只是容器执行hello文件

若你们只是想和docker打个招呼,那个么改变管道和基础图像

pipeline {

   agent {
        docker { image 'alpine'  }
    }

    stages {
        stage('Test') {
            steps {
                sh 'echo hello form container'
            }
        }
    }
}

“执行官:\”猫\":? 似乎您已被修改Dockerfile或pipline似乎不完整我已在查询中给出管道。没有dockerfile。现在我正在写管道本身中的命令。你能自己在本地运行docker映像吗?我会从那里开始是的,它在本地运行良好。好的,那么你是如何创建图像的?那有Dockerfile吗?