热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

docker-in-docker(dind)服务在gitlabci中的作用

如何解决《docker-in-docker(dind)服务在gitlabci中的作用》经验,为你挑选了1个好方法。

根据官方gitlab文档,docker buildci管道内启用的一种方法是使用dind服务(就gitlab-ci 服务而言).

但是,由于在docker执行程序上运行ci作业总是如此,因此docker:latest也需要图像.

有人能解释一下:

docker:dinddocker:latest图像有什么区别?

(最重要的):为什么这两个服务和所需要的泊坞窗图像(如所示在这个例子中,从GitHub的文档链接)来执行如docker buildwhithin一个CI的工作吗?不是docker:latest图像(作业将在其中执行!)包含docker守护程序(我认为docker-compose也是),它们是我们需要的命令所必需的工具(例如docker build,docker push等等)?

除非我错了,否则问题或多或少变成:

为什么docker客户端和docker守护程序不能驻留在同一个docker(启用)容器中

小智.. 44

docker:dind和docker:最新图片有什么区别?

docker:latest包含需要连接到一个码头工人守护进程,即一切,运行docker build,docker run和这样的.它还包含docker守护程序,但它不是作为入口点启动的.

docker:dind构建docker:latest并启动docker守护进程作为其入口点.

因此,它们的内容几乎相同,但是通过它们的入口点,一个被配置为连接到tcp://docker:2375客户端而另一个用于守护进程.

为什么需要服务和码头图像[...]?

你不需要两者.你可以使用二者中的任何,开始dockerd作为第一步,然后再运行docker build,并docker run命令像往常一样,像我一样在这里 ; 显然这是gitlab 在某些时候的原始方法.但我发现只写service: docker:dind而不是before_script设置更清洁dockerd.此外,您不必弄清楚如何dockerd在基本映像中正确启动和安装(如果您不使用docker:latest.)

.gitlab-ci.yml如果您知道您的跑步者正在将其添加/var/run/docker.sock到您的图像中,则可以轻松地在您的服务中声明该服务.您可以将受保护变量 DOCKER_HOST设置unix:///var/run/docker.sock为更快的构建.其他无法访问此类跑步者的人仍然可以分叉您的存储库并回退到dind服务而无需修改您的.gitlab-ci.yml.



1> 小智..:

docker:dind和docker:最新图片有什么区别?

docker:latest包含需要连接到一个码头工人守护进程,即一切,运行docker build,docker run和这样的.它还包含docker守护程序,但它不是作为入口点启动的.

docker:dind构建docker:latest并启动docker守护进程作为其入口点.

因此,它们的内容几乎相同,但是通过它们的入口点,一个被配置为连接到tcp://docker:2375客户端而另一个用于守护进程.

为什么需要服务和码头图像[...]?

你不需要两者.你可以使用二者中的任何,开始dockerd作为第一步,然后再运行docker build,并docker run命令像往常一样,像我一样在这里 ; 显然这是gitlab 在某些时候的原始方法.但我发现只写service: docker:dind而不是before_script设置更清洁dockerd.此外,您不必弄清楚如何dockerd在基本映像中正确启动和安装(如果您不使用docker:latest.)

.gitlab-ci.yml如果您知道您的跑步者正在将其添加/var/run/docker.sock到您的图像中,则可以轻松地在您的服务中声明该服务.您可以将受保护变量 DOCKER_HOST设置unix:///var/run/docker.sock为更快的构建.其他无法访问此类跑步者的人仍然可以分叉您的存储库并回退到dind服务而无需修改您的.gitlab-ci.yml.


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 标题: ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • C++语言入门:数组的基本知识和应用领域
    本文介绍了C++语言的基本知识和应用领域,包括C++语言与Python语言的区别、C++语言的结构化特点、关键字和控制语句的使用、运算符的种类和表达式的灵活性、各种数据类型的运算以及指针概念的引入。同时,还探讨了C++语言在代码效率方面的优势和与汇编语言的比较。对于想要学习C++语言的初学者来说,本文提供了一个简洁而全面的入门指南。 ... [详细]
author-avatar
清宫佳伶330
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有