java - 在被调用者 docker 容器之外实例化 docker 容器

标签 java hadoop docker

我正在尝试在我的 java 代码中以编程方式启动 docker 容器,它将进行一些数据处理,然后在完成后死亡。 这样一来,我们就没有大量的 Docker 容器不断地监听生产集群。

我找到了 docker remote api,它允许我发送 http\s 调用来执行各种 docker 命令。 我还找到了 Spotify 的一个不错的库,它可以环绕这些调用。

我的问题是:

  • 如果调用远程 api 的代码在 docker 容器中,那么在该代码中实例化的容器是否会存在于被调用方 docker 容器中?本质上是 jetty worker 中的 jetty worker 。 这并不理想,因为此代码将实例化的一些潜在容器将使用大量 RAM,这将超过为被调用方容器分配的 RAM,尤其是当我们随时实例化 n 个容器时。

  • 如何使实例化的 docker 容器与主机中的其他容器一起运行?

  • 要使其在 hadoop 集群中运行,是否需要做任何事情? docker api 当前正在监听默认的 unix 套接字,是否需要将其更改为端 Eloquent 能在集群中工作?

Docker 和 Hadoop 对我来说是新手,所以任何信息都会很有帮助。

最佳答案

will the container being instantiated in that code live inside the callee docker container

从哪里进行 Docker API 调用并不重要,容器将在与代码通信的 Docker 守护进程运行的地方实例化。如果您使用 Swarm 之类的东西来管理 Docker 主机集群,则可能是您告诉 API 运行容器的位置。

Are there any things that will need to be done for this to work in a hadoop cluster?

Hadoop 集群和 Docker(或 Docker 集群)通常是分开管理的,因此它们不一定是一回事。您的基础架构人员应该能够告诉您他们在您的环境中如何相互关联。您连接到 Docker API 的方式只会真正改变您的代码需要运行的位置,而不是您的代码可以做什么。

关于java - 在被调用者 docker 容器之外实例化 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47185198/

相关文章:

python - 在 pip 中为 flask 应用程序构建 docker 图像失败

java - Spring Boot 应用程序与部署在 Tomcat/Jetty 上的 .war 文件

java - Java 锁条件是如何初始化的

linux - 有人可以向初学者提供有关 Hadoop 工作原理的高级、简单的解释吗?

java - 在 hadoop 2.6 中配置默认​​名称节点端口

database - 从 Google Cloud Run 服务中的 docker 容器到 Google Cloud SQL 的请求最多需要 2 分钟

mongodb - com.mongodb.MongoSocketOpenException : when connecting to mongodb docker container 异常

java - 用 Jackson 解析 JSON 让我抓狂

java - 我怎样才能反转我的 Magic Square 的输出

hadoop - Spark 应用程序卡在 ACCEPTED 状态