3

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

Docker-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コードでそれを行う必要があります. 既存のコンテナーの ID を取得してから、それらの IP アドレスを取得し、restartContainerCmd メソッドを使用してコンテナーを再起動する必要があります。

4

2 に答える 2

0

次のようなユーティリティ メソッドを探しているかもしれません。

    void restartContainers(DockerClient dockerClient) {
        dockerClient.listContainersCmd().exec().stream()
            .map(Container::getId)
            .map(dockerClient::restartContainerCmd)
            .forEach(RestartContainerCmd::exec);
    }

GitHub の完全なコード

于 2019-05-16T23:53:49.457 に答える