码迷,mamicode.com
首页 > Windows程序 > 详细

在docker for windows运行jenkins时,docker不可用的问题

时间:2020-06-01 10:22:59      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:dock   cannot   section   mon   解决   https   不可   提示   无法   

docker镜像用的jenkinsci/blueocean,用原始的jenkins下的也可以。

问题1

在运行docker命令时,如docker version,会提示cannot connect to docker daemon的错误。

原因

jenkins使用的是宿主机的docker环境,本身不运行docker daemon。

解决方式

所以需要挂在宿主机的docker.sock文件。即在启动时增加挂载:

"/var/run/docker.sock:/var/run/docker.sock"

虽然windows下在宿主机上看不到/var/run/docker.sock文件,但实际上docker for windows是会跑一个Hyper-V虚拟的Linux环境并运行docker daemon的,在启动docker镜像时,docker container可以挂载到虚拟机的docker socket文件。 这个方法来自这篇文章:连接

新的问题

这样挂载以后,重新exec到宿主机上执行docker version,不再提示上一个错误了,但是会提示权限不够。

查看/var/run/docker.sock文件,会发现所有者和组都是root,其他用户不允许独写。

而blueocean镜像,jenkins是以jenkins用户运行的,所以无法访问。

解决方式

以root身份登入

docker exec -it -u root [container-id] sh

修改socket文件权限,这里修改所有组给jenkins

chgrp jenkins /var/run/docker.sock

然后就可以了。

其他

这里在权限问题时,想切换root用户那里卡了很久。原因是一开始一直在用docker exe而不是docker exec。。。而docker给我的提示是不认识-u选项,而不是不认识exe命令。。。

在docker for windows运行jenkins时,docker不可用的问题

标签:dock   cannot   section   mon   解决   https   不可   提示   无法   

原文地址:https://www.cnblogs.com/mosakashaka/p/13023696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!