我在Docker的容器里运行Jenkins。我想知道是否可以让Jenkins容器也作为Docker主机?我考虑的是从Jenkins内部为每个集成测试构建启动一个新的docker容器(启动数据库、消息代理等)。因此,容器应该在集成测试完成后关闭。有没有理由以这种方式避免从另一个docker容器内部运行docker容器?
在Docker(又名dind)内部运行Docker,虽然可能,但如果可能的话,应该避免。(资料来源如下)相反,您希望为您的主容器设置一种方式,使其能够生成同级容器并与同级容器通信。
Jérôme Petazzoni--使Docker能够在Docker容器内运行的特性的作者--实际上写了一篇博文说不要这样做。他描述的用例与需要在其他Docker容器内运行作业的CI Docker容器的OP精确用例相匹配。
Petazzoni列举了dind麻烦的两个原因:
在那篇博客文章中,他描述了以下备选方案,
最简单的方法是通过使用-v
标志绑定挂载Docker套接字,将其公开给配置项容器。
简单地说,当您启动配置项容器(Jenkins或其他)时,不是用Docker-in-Docker一起黑客,而是用:
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
问题内容: 我在Docker容器中运行Jenkins。我想知道Jenkins容器也可以作为Docker主机吗?我正在考虑的是从Jenkins内部为每个集成测试构建启动一个新的Docker容器(以启动数据库,消息代理等)。因此,在完成集成测试后应关闭容器。是否有理由避免以这种方式从另一个Docker容器内部运行Docker容器? 问题答案: 如果可能,应尽可能避免在Docker内部运行Docker(
如何在docker容器中运行基于的测试用例? 我有一个简单的Spring Boot应用程序,它具有集成测试(组件级),使用与容器交互。测试用例正在破坏来自外部容器(本地机器)的罚款。 我们正在容器中运行所有内容,并且build正在docker jenkins映像上运行。Docker文件正在创建jar,然后创建image。找不到安装的docker。下面是我的docker文件。 处理这个案子最好的办法
假设我们的系统中有4个不同的图像,它们的名称如下: 假设我们运行container\u 1。我的问题是:container\u 1运行是否可能会保留container\u 2这样的容器?我搜索了一下,发现的问题和文章是:docker在另一个docker中运行?但这不是我的情况,我需要在container\u 1旁边运行其他容器。我对码头工人的了解很少。
我有以下Dockerfile: 以及以下docker-compose.yml: 如果我通过docker cmd以以下方式手动运行Dockerfile: 看起来一切正常,我得到了它实际执行的应用程序输出日志: 但是,当我试图通过docker-comment以以下方式执行我的应用程序时: 我的应用程序似乎启动正常,但无法继续执行。以下是输出: 我尝试执行show logs命令: 但我得到的唯一记录是第
我想知道是否可以在Linux环境下运行Windows docker容器。
问题内容: 在昨天的Shocker消息发布之后,似乎Docker容器中的应用程序不应以root用户身份运行。我尝试更新自己以创建应用程序用户,但是更改对应用程序文件的权限(虽然仍然是root)似乎不起作用。我猜这是因为未将某些LXC权限授予root用户? 这是我的Dockerfile: 很简单,但是当我一切仍然由root拥有时: 感谢@creak对卷的工作原理的澄清,我更新的dockerfile的