栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

权限被拒绝错误以非root用户身份从Docker Ubuntu容器内部调用Mac主机上的Docker

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

权限被拒绝错误以非root用户身份从Docker Ubuntu容器内部调用Mac主机上的Docker

我可以正常工作,至少是自动化的,但目前仅在Mac的docker上工作。
Mac的Docker具有独特的文件权限模型。手动将/var/run/docker.sock赋予jenkins用户有效,并且在容器重新启动甚至映像重新生成期间仍然存在,但过去的docker守护程序重新启动则不会。另外,您无法在Dockerfile中执行chown,因为docker.sock还不存在,并且您无法在入口点中执行,因为它作为jenkins运行。

所以我要做的就是将詹金斯添加到``staff’‘组中,因为在我的Mac上,/var/run/docker.sock被符号链接到/Users//Library/Containers/com.docker.docker/Data/‌s60是uid和gid的工作人员。这使jenkins用户可以在主机上运行docker命令。

Dockerfile:

FROM jenkins:latestUSER rootRUN     apt-get update &&     apt-get install -y build-essential &&     apt-get clean &&     rm -rf /var/lib/apt/lists/*COPY docker /usr/bin/docker# To allow us to access /var/run/docker.sock on the MacRUN gpasswd -a jenkins staffUSER jenkinsENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"]

docker-compose.yml文件:

version: "3"services:  jenkins:    build: ./cd_jenkins    image: cd_jenkins:latest    ports:      - "8080:8080"      - "5000:5000"    volumes:      - ./jenkins_home:/var/jenkins_home      - /var/run/docker.sock:/var/run/docker.sock

但是,这不能移植到其他系统(并且该docker使Mac组保持“人员”,我想不能保证)。我很乐意提出改进建议,以使该解决方案能够在主机系统上正常工作。在诸如詹金斯(Jenkins)Docker容器内的Execute
docker host命令之类的问题中建议的其他选项包括:

  • 安装sudo并让jenkins sudo并使用sudo运行所有docker命令:增加了安全性问题
  • “将jenkins添加到docker组”-仅限于UNIX,可能依赖于将gid从主机匹配到容器,对吗?
  • 对包含的docker可执行文件执行setuid操作可能有效,但与sudo一样存在安全性提升问题。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507056.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号