如何在本地计算机上查找docker镜像

时间:2018-03-16 14:10:23

标签: docker jenkins-plugins dockerfile jenkins-pipeline docker-machine

我的本​​地计算机上有一个泊坞窗图像。当我尝试使用下面的Jenkins文件运行图像时。

agent {
docker {
image 'gcc/sample:latest'
args "-v /etc/passwd:/etc/passwd:ro 
        }
    }

然后我收到以下错误。

+ docker pull gcc/sample:latest

Pulling repository docker.io/gcc/sample

Error: image gcc/sample:latest not found

script returned exit code 1

我有什么方法可以在Jenkins文件中查找我的本地机器上的docker镜像而不是docker.io中的docker image。

3 个答案:

答案 0 :(得分:4)

为此,您需要在本地计算机上或Jenkins运行的Jenkins服务器上使用docker注册表。 只需运行docker注册表容器

 docker run -d -p 5000:5000 --restart always --name registry registry:2

首先标记您的图片

docker tag alpine localhost:5000/gcc/sample:latest

将该图像推送到本地docker注册表

docker push localhost:5000/gcc/sample:latest

现在,如果你想在jenkins中提取这个docker图像,那么给dns拉出路径,因为我们从docker注册表中提取了一些内容,其中包含dns的全名。

docker pull localhost:5000/gcc/sample:latest

注册表是一个存储和内容交付系统,包含名为Docker的图像,提供不同的标记版本。

  

docker pull ubuntu指示docker从官方Docker Hub中提取名为ubuntu的图像。这只是较长的docker.dir/library/ubuntu命令

的快捷方式      

docker pull myregistrydomain:port / foo / bar指示docker联系   注册表位于myregistrydomain:port以查找图像   富/酒吧

     

运行自己的注册表是一个很好的解决方案,可以与和集成   补充您的CI / CD系统。

https://docs.docker.com/registry/introduction/

答案 1 :(得分:0)

原来这已经是一个已知问题:https://issues.jenkins-ci.org/browse/JENKINS-47106

始终在代理程序定义中提取泊坞窗图像。在此期间,唯一的解决方案是将图像推送到Dockerhub或私人注册,以便成功拉出。

答案 2 :(得分:0)

在我们的环境中,出于某些原因,使用并行级会阻止拉动动作。

#!/usr/bin/env groovy
pipeline {
    agent none

    options {
        timestamps()
    }

    stages {
        stage('Parallel') {
            parallel {
                stage('EL6') {
                    agent { 
                        docker { 
                            image 'centos6'
                            label 'Docker&&EL'
                        }
                    }
                    steps {
                        ...
                    }
                }
            }
        }
    }
}

背景:我们通常使用具有并行步骤的多分支管道作业。在测试新东西时,我写了最简单的利用docker的Jenkinsfile。我使用了一个没有并行段的简单Pipeline作业,并注意到它总是尝试进行拉(失败)。

相关插件:

Docker Commons Plugin
Provides the common shared functionality for various Docker-related plugins.
1.11
Downgrade to 1.11

Docker Pipeline
Build and use Docker containers from pipelines.
1.15

Pipeline: API
Plugin that defines Pipeline API.
2.28
Downgrade to 2.25

Pipeline: Basic Steps
Commonly used steps for Pipelines.
2.6

Pipeline: Declarative
An opinionated, declarative Pipeline.
1.2.7

Pipeline: Declarative Agent API
Replaced by Pipeline: Declarative Extension Points API plugin.
1.1.1

Pipeline: Declarative Extension Points API
APIs for extension points used in Declarative Pipelines.
1.2.7

Pipeline: Job
Defines a new job type for pipelines and provides their generic user interface.
2.17

Pipeline: Model API
Model API for Declarative Pipeline.
1.2.7


Pipeline: Stage Step
Adds the Pipeline step stage to delineate portions of a build.
2.3

Pipeline: Stage Tags Metadata
Library plugin for Pipeline stage tag metadata.
1.2.7

Pipeline: Stage View Plugin
Pipeline Stage View Plugin.
2.9

Pipeline: Step API
API for asynchronous build step primitive.
2.16
Downgrade to 2.14

Pipeline: Supporting APIs
Common utility implementations to build Pipeline Plugin
2.17