理解docker.sock,未映射sock导致的jenkins无法启动agent

在学习Continuous Delivery with Docker and Jenkins
使用Docker中的Jenkins镜像启动时使用了

$ docker run -p <host_port>:8080 -v <host_volume>:/var/jenkins_home jenkins:2.60.1

配置成功后尝试运行Jenkins官网的入门example

Jenkinsfile (Declarative Pipeline)
pipeline {
    agent { docker 'node:6.3' }
    stages {
        stage('build') {
            steps {
                sh 'npm --version'
            }
        }
    }
}

这里的agent是启动一个docker实例
接下来获取repository成功后容其中docker pull时报错 failed to get default registry endpoint from daemon

+ docker pull node:6-alpine
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?). Using system default: https://index.docker.io/v1/
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE<pre class="console-output" style="box-sizing: border-box; white-space: pre-wrap; word-wrap: break-word; margin: 0px; color: rgb(51, 51, 51); font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">+ docker pull node:6-alpine
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon. Is the docker daemon running on this host?). Using system default: [https://index.docker.io/v1/](https://index.docker.io/v1/)
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

 ERROR: script returned exit code 1
Finished: FAILURE

仔细阅读Jenkins官网Docker指南后发现少了docker.sock的映射

docker run -d -p 80:8080 \
-v $(pwd)/jenkinshome:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean

成功build

image.png

docker.sock是什么?
阅读了About /var/run/docker.sock

docker.sock是Docker守护进程的socket接口,通过它我们可以使用创建启动新的docker实例,上面的例子中因为没有映射,导致在container内部没有办法创建Docker image

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 1、传统我们的项目开发模式是产品调研提出需求,开发团队研究决定开发方案选型。然后开始一个周期的开发,模块开发完成之...
    张熙阅读 14,241评论 2 42
  • 白落落认真的整理自己的摄影作品。 每个人要投稿五张作品备选,白落落把之前在眉山寺拍摄的雪景整理了四张,却再也选不出...
    落花已忘言阅读 1,697评论 0 0
  • 01 和孩子在一起时间越长,越感觉孩子像一扇镜子,清晰地照射出我所有的庸俗与不堪。想去改变,才发现那些庸俗与不堪,...
    Miss苏朵儿阅读 4,930评论 2 9
  • --我去文科班了,我们也依然是好朋友!-- “小姐妹见面去了?”余淮边说边把一摞用过的演草纸塞进桌屉。 “恩。”我...
    名字很好听的作家阅读 8,915评论 0 0

友情链接更多精彩内容