Refine search
private List<Container> listChildContainers() { return dockerClient.listContainersCmd() .withShowAll(true) .exec().stream() .filter(container -> Arrays.stream(container.getNames()).anyMatch(name -> name.startsWith("/" + project))) .collect(toList()); }
private Set<Link> findLinksFromThisContainer(String alias, LinkableContainer linkableContainer) { return dockerClient.listContainersCmd() .withStatusFilter(Arrays.asList("running")) .exec().stream() .flatMap(container -> Stream.of(container.getNames())) .filter(name -> name.endsWith(linkableContainer.getContainerName())) .map(name -> new Link(name, alias)) .collect(Collectors.toSet()); }
@Override protected List<Container> execute(ListContainersCmd command) { WebTarget webTarget = getBaseResource().path("/containers/json").queryParam("since", command.getSinceId()) .queryParam("before", command.getBeforeId()); webTarget = booleanQueryParam(webTarget, "all", command.hasShowAllEnabled()); webTarget = booleanQueryParam(webTarget, "size", command.hasShowSizeEnabled()); if (command.getLimit() != null && command.getLimit() >= 0) { webTarget = webTarget.queryParam("limit", String.valueOf(command.getLimit())); } if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget .queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } LOGGER.trace("GET: {}", webTarget); List<Container> containers = webTarget.request().accept(MediaType.APPLICATION_JSON) .get(new GenericType<List<Container>>() { }); LOGGER.trace("Response: {}", containers); return containers; }
private void doStop() { client.listContainersCmd().withStatusFilter("running").withLabelFilter(label).exec().stream() .filter(c -> c.getId() != null) .forEach(c -> client.stopContainerCmd(c.getId()).exec()); }
@Test @DisplayName("start a container after pulling the image") public void shouldStartContainer() { String containerId = defaultDockerClient.startContainer(WANTED_IMAGE, emptyMap()); assertThat(dockerClient.listContainersCmd().exec()).hasSize(existingContainers.size() + 1); InspectContainerResponse startedContainer = dockerClient.inspectContainerCmd(containerId).exec(); assertThat(startedContainer.getConfig().getImage()).isEqualTo(WANTED_IMAGE); }
private boolean isRunning() { final List<Container> all = client.listContainersCmd().withShowAll(true).withLabelFilter(label).exec(); final List<Container> running = client.listContainersCmd().withStatusFilter("running").withLabelFilter(label).exec(); all.stream() .filter(c -> running.isEmpty() || !running.get(0).getId().equals(c.getId())) .forEach(c -> client.removeContainerCmd(c.getId()).withForce(true).exec()); return !running.isEmpty(); }
private Set<String> findAllNetworksForLinkedContainers(LinkableContainer linkableContainer) { return dockerClient.listContainersCmd().exec().stream() .filter(container -> container.getNames()[0].endsWith(linkableContainer.getContainerName())) .filter(container -> container.getNetworkSettings() != null && container.getNetworkSettings().getNetworks() != null) .flatMap(container -> container.getNetworkSettings().getNetworks().keySet().stream()) .distinct() .collect(Collectors.toSet()); }
@AfterEach public void stopAndRemoveStartedContainers() { dockerClient.listContainersCmd().exec().stream() .filter(container -> !existingContainers.contains(container)) .forEach(container -> { dockerClient.stopContainerCmd(container.getId()).exec(); dockerClient.removeContainerCmd(container.getId()).exec(); }); }
containerId = createCommand.exec().getId(); DockerClientFactory.build().startContainerCmd(containerId).exec(); List<Container> containers = DockerClientFactory.build().listContainersCmd().withShowAll(true).exec(); for (Container container : containers) { if (container.getId().equals(containerId)) {
List<Container> containerList = null; try { containerList = client.listContainersCmd() .withShowAll(true) .withLabelFilter(labelFilter) .exec(); } catch (Exception e) { LOGGER.warn("Unable to retrieve list of containers available on DockerCloud [name={}, dockerURI={}] while reading list of containers (showAll=true, labelFilters={})", dc.getDisplayName(), dc.getDockerApi().getDockerHost().getUri(), labelFilter.toString(), e);
for (Container container : dockerClient.listContainersCmd().exec()) dockerClient.killContainerCmd(staleContainer.getId()).exec(); log.warn("Stale container removed ({})", staleContainer.labels);
/** * Counts the number of instances currently running in Docker that are using * the specified image. * <p> * <b>WARNING:</b> This method can be slow so it should be called sparingly. * * @param imageName * If null, then all instances belonging to this Jenkins instance * are counted. Otherwise, only those started with the specified * image are counted. */ public int countContainersInDocker(final String imageName) throws Exception { final Map<String, String> labelFilter = new HashMap<>(); labelFilter.put(DockerContainerLabelKeys.JENKINS_INSTANCE_ID, DockerTemplateBase.getJenkinsInstanceIdForContainerLabel()); if (imageName != null) { labelFilter.put(DockerContainerLabelKeys.CONTAINER_IMAGE, imageName); } final List<?> containers; try(final DockerClient client = dockerApi.getClient()) { containers = client.listContainersCmd().withLabelFilter(labelFilter).exec(); } final int count = containers.size(); return count; }
ListContainersCmd listContainersCmd = client.listContainersCmd(); listContainersCmd.withBefore(before); listContainersCmd.withLimit(limit); listContainersCmd.withShowAll(showAll); listContainersCmd.withShowSize(showSize); listContainersCmd.withSince(since);
break; case LIST_CONTAINERS: result = executeListContainersRequest(client, message).exec(); break; case KILL_CONTAINER:
private Set<Link> findLinksFromThisContainer(String alias, LinkableContainer linkableContainer) { return dockerClient.listContainersCmd().withStatusFilter(Arrays.asList("running")).exec().stream().flatMap(container -> Stream.of(container.getNames())).filter(name -> name.endsWith(linkableContainer.getContainerName())).map(name -> new Link(name, alias)).collect(Collectors.toSet()); }
@After public void tearDown() throws IOException { List<Container> running = client.listContainersCmd() .withStatusFilter("running").exec(); if (running != null) { running.forEach(container -> client.stopContainerCmd(container.getId()).exec()); } client.close(); discovery.close(); vertx.close(); }
@Test @DisplayName("start a container without ports") public void shouldStartContainer() { String containerId = defaultDockerClient.startContainer(WANTED_IMAGE, emptyMap()); assertThat(dockerClient.listContainersCmd().exec()).hasSize(existingContainers.size() + 1); InspectContainerResponse startedContainer = dockerClient.inspectContainerCmd(containerId).exec(); assertThat(startedContainer.getConfig().getImage()).isEqualTo(WANTED_IMAGE); }
public List<Container> listRunningContainers() { this.readWriteLock.readLock().lock(); try { return this.dockerClient.listContainersCmd().exec(); } finally { this.readWriteLock.readLock().unlock(); } }
@After public void tearDown() throws IOException { List<Container> running = client.listContainersCmd() .withStatusFilter("running").exec(); if (running != null) { running.forEach(container -> client.stopContainerCmd(container.getId()).exec()); } client.close(); discovery.close(); vertx.close(); }
public boolean isServiceReady() { try { List<Container> allContainers = dockerClient.listContainersCmd().withShowAll(true).exec(); for (Container container : allContainers) { if (asList(container.getNames()).contains("/" + otherContainerName) && !container.getStatus().contains("Exited")) { return true; } } } catch (DockerException e) { return false; } return false; } }