通过Docker提供的Java API,可以获取Docker容器的IP地址。以下是一个示例代码:
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.model.Container;
import com.github.dockerjava.core.DefaultDockerClientConfig;
import com.github.dockerjava.core.DockerClientBuilder;
import com.github.dockerjava.core.command.InspectContainerResponse;
public class DockerContainerIP {
public static void main(String[] args) {
// 创建Docker客户端
DockerClient dockerClient = DockerClientBuilder.getInstance(DefaultDockerClientConfig.createDefaultConfigBuilder().build()).build();
// 获取所有运行中的容器
List<Container> containers = dockerClient.listContainersCmd().exec();
// 遍历容器并获取IP地址
for (Container container : containers) {
InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
String containerIP = inspectContainerResponse.getNetworkSettings().getIpAddress();
System.out.println("Container ID: " + container.getId());
System.out.println("Container IP: " + containerIP);
}
// 关闭Docker客户端
dockerClient.close();
}
}
以上代码使用Docker Java API获取所有运行中的容器,并通过InspectContainerResponse获取容器的IP地址。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: Docker如何优化资源利用率