Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

377
Vistas
Cómo obtener una lista de identificadores de contenedores existentes por Docker-java

En el código Java, necesito administrar los contenedores docker (reiniciar, detener, iniciar ...) usando la biblioteca Docker-java. https://github.com/docker-java/docker-java

En los ejemplos de Docker-Java, encontré la forma de crear y obtener un contenedor: 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());

en línea de comando podemos usar:

 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

Pero necesito hacerlo por código JAVA. Necesito obtener las ID de los contenedores existentes, luego obtener sus direcciones IP y usar el método restartContainerCmd para reiniciarlo.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Solución encontrada. Póngalo aquí en caso de que alguien tenga la misma pregunta:

Cree un DockerClient simple, luego cree el objeto ListContainersCmd y use el método exec(), luego itere a través de la lista de contenedores y encuentre los asociados del contenedor con la IP y luego obtenga la identificación del contenedor; con Id podemos reiniciar el contenedor:

 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(); } }
over 4 years ago · Santiago Trujillo Denunciar

0

Es posible que esté buscando un método de utilidad como este:

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

Código completo en GitHub

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda