javaでDockerコンテナのIPアドレスを取得する方法

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アドレスを取得しています。

bannerAds