控制docker – 用Java编写

我创build了相当数量的docker-compose脚本,它们产生了多个服务。 我现在想要在JVM中控制docker-compose。 基本上,我希望能够down执行,理想情况下使用-p <project name>参数,所以我可以同时产生多个实例。

这在Java中可能吗?

可以采取两种可能的方法:

  1. 使用正常的命令执行程序(例如,借助于ProcessBuilder并运行OS命令)运行docker-up / down,
  2. 使用本地docker SDK ,目前正式支持golang和python,但是可以在这里和这里findjava docker客户端。 现在,我正在使用docker SDK和golang,并且看到我们可以用docker编程地完成几乎所有的事情。

Docker Compose是一个python实用程序,可以直接与所有其他Docker客户端交谈相同的Docker API。 它发送的命令并没有什么根本的不同,但是它在代码中为你pipe理了很多Docker容器的生命周期。

撰写是基于docker Python模块,这是另一个Python的Docker API客户端。

在Java中重新实现它可能需要很多, 这里是up方法 。 如果你真的需要从JVM执行,或者坚持执行来自Java的docker-compose命令,也许可以尝试使用Jython 。

我find了另一个有用的库: https : //www.testcontainers.org 。

TestContainers是一个Java库,它支持JUnittesting,提供轻量级的普通数据库,Selenium Web浏览器或其他任何可以在Docker容器中运行的实例。