gpt4 book ai didi

jenkins - 从另一个容器控制一个容器

转载 作者:行者123 更新时间:2023-12-02 18:49:10 25 4
gpt4 key购买 nike

我发现了很多关于 docker 容器(docker network、docker link)之间通信的文章。但我不知道是否存在从另一个容器控制容器的好习惯,例如运行和停止容器。
如果唯一的方法是在主机上使用 rest api,你有没有很好的文章来解释这一点?关于其余的 api,我发现太多解释这一点的文章,其中大多数已经过时。

为了明确我的意图,我有一个 jenkins 容器,它构建并将内置的移动到另一个文件夹中,用于执行构建代码的第二个容器。基本上,在移动之前我想停止容器并在重新启动它之后。

感谢帮助。

最佳答案

i don't Know if it exists a good practice to control a container from another one, like run and stop a container.



这是一种“足够好”的做法,很多人都这样做。 CoreOS的 /usr/bin/toolbox基本上就是这样,像 RancherOS 这样的其他一些人也这样做。

If the only way is to use the rest api on the host have you got a good article which explains that ?



不它不是。您可以将 docker 的套接字挂载到另一个 docker 容器中,然后直接从容器内部在主机上运行 docker 命令。这种做法被称为“docker in docker”、“dind”、“nested containers”等。这是一种变体,人们在现有容器中运行完整版本的 docker(docker 引擎/守护进程 + 客户端),但那是不是你想在这里做的。

它的要点通常是相同的,docker unix socket - /var/run/docker.sock暴露/安装在“控制容器”中,即您要用来控制 docker 守护进程的容器。然后安装 docker 命令行客户端并正常使用 docker 命令; docker ps , docker start/stop/run应该都按预期工作。

设置它并非易事 [1],并且存在相关的安全问题 [2][3],但是有很多人在这样做。

以下是您的引用资料:

[1] https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-for-ci/ , 请参阅 Solution 下的部分,在那之前的一切都是你不应该做的。

[2] https://www.lvh.io/posts/dont-expose-the-docker-socket-not-even-to-a-container.html

[3] https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/

关于jenkins - 从另一个容器控制一个容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42044739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com