我正在尝试以编程方式在我的java代码中启动docker容器,这些容器将执行一些数据处理,然后在完成后死掉。 这样我们就没有大量的docker容器不断监听生产集群。
我找到了docker remote api,它允许我发送http \ s调用来执行各种docker命令。 我还发现Spotify的一个很好的库会绕过这些调用。
我的问题是:
如果调用远程api的代码在docker容器中,那么在该代码中实例化的容器是否会存在于被调用者的docker容器中?基本上是码头工人的码头工人。 这并不理想,因为这些代码将实例化的一些潜在容器将使用大量的RAM,这将超过被调用容器的已分配RAM,特别是如果我们在任何时候实例化n个容器。
如何使docker容器与居住在主机中的其他容器一起实例化?
在hadoop群集中有什么需要做的事情吗? docker api当前正在监听默认的unix套接字,是否需要将其更改为端口才能在集群中工作?
Docker和Hadoop对我来说都是新手,所以任何信息都会非常有用。
答案 0 :(得分:1)
将在该代码中实例化的容器将存在于被调用者的docker容器
中
如果您从无关紧要的方式进行Docker API调用,则将实例化容器,其中代码正在与之交谈的Docker守护程序正在运行。如果您使用Swarm之类的东西管理Docker主机集群,可能会告诉API运行容器。
在hadoop群集中有什么需要做的事情吗?
Hadoop集群和Docker(或Docker集群)通常是单独管理的,因此它们不一定是同一个东西。您的基础架构人员应该能够告诉您它们在您的环境中彼此之间的关系。如何连接到Docker API只会真正改变代码运行的位置,而不是代码可以执行的操作。