ドッカー-javaのことで、既存のコンテナIDのリストを取得する方法

ハンスへ:

Javaコードでは、私はドッカー-Javaライブラリを使用して(...、再起動、停止、開始)ドッカコンテナを管理する必要があります。https://github.com/docker-java/docker-java

私はコンテナを作成し、取得する方法を発見したドッカー-Javaのサンプルで:https://github.com/docker-java/docker-java/wiki

     DockerClient dockerClient = DockerClientBuilder.getInstance().build();
     CreateContainerResponse container = dockerClient.createContainerCmd("nginx")
            .exec();
     System.out.println(container.getId());
     dockerClient.restartContainerCmd(container.getId());

コマンドラインで、私たちは使用することができます。

      docker container ls
      CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
      4dd858fe9022        nginx               "nginx -g 'daemon of…"   42 hours ago        Up 42 hours         0.0.0.0:80->80/tcp   webserver

しかし、私は、Javaコードでそれを行う必要があります。私はそれらのIPアドレスを取得し、それを再起動するrestartContainerCmdメソッドを使用し、既存のコンテナのIDを取得する必要があります。

ハンスへ:

見つかったソリューション。誰かが同じ質問を持っている場合場合には、ここでそれを置きます:

コンテナのリストを反復処理し、IPを持つコンテナの仲間を見つけ、その後、コンテナIDを取得し、その後、ListContainersCmdオブジェクトおよび使用のexec()メソッドを作成し、単純なDockerClientを構築します。IDを持つ私たちは、コンテナを再起動することができます。

DockerClient dockerClient = DockerClientBuilder.getInstance().build();
ListContainersCmd listContainersCmd = dockerClient.listContainersCmd().withShowAll(true);
    for (Container container: listContainersCmd.exec()) {
        if (container.toString().contains("192.168.1.105")){
            dockerClient.restartContainerCmd(container.getId()).exec();
        }
    }

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=187484&siteId=1