当前位置: 首页 > 知识库问答 >
问题:

从Java应用程序在容器内执行docker命令

淳于昊然
2023-03-14

我在一个容器中运行Kafka,希望能够运行一个简单的命令来更改Java应用程序(Spring Boot)主题上的分区数。

我尝试过ProcessBuilder,但从我读到的任何错误消息来看,我无法通过ProcessBuilder来完成。

相反,我尝试查看Docker API,但无法理解/找到任何解决方案

我想做的是:运行:docker exec-it kafka bash,然后在kafka容器内运行:/宾/Kafka主题。sh--alter--zookeeper zookeeper:2181--主题topicName--分区5

他们的方法简单吗?

共有1个答案

慕铭
2023-03-14

Kafka在哪里竞选与这个问题无关。您只需要它是可解析的(使用引导服务器,而不是不推荐的zookeeper配置)

shell脚本只是现有Java类的包装器,您可以在自己的Java代码中导入和调用这些类,因此您不应该使用ProcessBuilder或docker exec。使用Spring-Kafka时,您还可以尝试在Spring配置中为NewTopic定义@Bean,但我不确定更改配置中的分区计数是否会实际发送更改请求或忽略现有主题的更改。

请记住,您不应该修改正在主动接收数据的主题的分区计数,所以请首先停止现有生产者和消费者。

 类似资料:
  • 问题内容: 我要完成的工作是在已经使用Ansible在Digital Ocean Ubuntu / Docker Droplet上创建的Docker容器内运行命令。 似乎找不到任何东西,或者我主要是缺少一些东西。这是我在剧本中完成的任务。我对Ansible非常陌生,因此任何建议或智慧都将不胜感激。 问题答案: 您应该能够使用以下命令执行脚本(包含命令序列): 应该可以通过Ansible流程访问。

  • 我已经创建了一个docker映像来测试Angular应用程序,但是我无法在docker容器内从主机连接到正在运行的应用程序。 该图像是使用带有:EXPOSE 4200 8080 80的Dockerfile创建的 我使用命令运行docker容器:docker run-ti-p 4200:4200angulardev/bin/bash 在容器内部,我创建了Angular应用程序,并使用:ng serv

  • 问题内容: 我正在使用的程序使用ADB(Android调试桥)将文件发送到手机: 我希望程序等待ADB完成传输,但是ADB作为守护程序运行,因此永远无法完成。但是该程序仍在继续运行,并且某种程度上文件没有发送到我的手机(日志中没有例外)。当我从控制台运行命令时,它可以正常工作。 我究竟做错了什么?如何正确通过ADB发送文件? 注意:这将不起作用,因为ADB守护程序会将 所有输出 写入系统标准输出。

  • 试图执行这个,但什么也没发生。我用的是Ubuntu13.10。如何用java程序在ubuntu中做cd。我用过“-c”,但它不起作用。

  • 我正在尝试将.war、.aar、.xml和.properties文件部署到tomcat docker容器。我使用了下面的Dockerfile和基本的tomcat docker映像。 到目前为止一切正常。它提取war文件并启动容器内的应用程序。 但是现在我需要像这样添加/编辑“/usr/local/tomcat/webapps/root/web-inf//”和“/usr/local/tomcat/w