ハンスへ:
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();
}
}