private <T> T runInsideDocker(DockerClient client, Consumer<CreateContainerCmd> createContainerCmdConsumer, BiFunction<DockerClient, String, T> block) { checkAndPullImage(client, TINY_IMAGE); CreateContainerCmd createContainerCmd = client.createContainerCmd(TINY_IMAGE) .withLabels(DEFAULT_LABELS); createContainerCmdConsumer.accept(createContainerCmd); String id = createContainerCmd.exec().getId(); try { client.startContainerCmd(id).exec(); return block.apply(client, id); } finally { try { client.removeContainerCmd(id).withRemoveVolumes(true).withForce(true).exec(); } catch (NotFoundException | InternalServerErrorException ignored) { log.debug("", ignored); } } }
applyConfiguration(createCommand); containerId = createCommand.exec().getId();
.withCmd(BASH, "-c", cmd) .withTty(true) .exec();
public String createContainer(String image, String... command){ CreateContainerResponse container = dockerClient .createContainerCmd(image) .withCmd(command) .exec(); return container.getId(); }
@Override public void create() { try { createCreateContainerCmd().exec(); } catch (RuntimeException e) { throw new DockerException("Failed to create container " + toString(), e); } }
private void startContainer(Map<String, String> env, Map<Integer, Integer> ports, Map<String, String> cmd, Consumer<String> log) { final CreateContainerResponse container = client.createContainerCmd(image) .withCmd(cmd.entrySet().stream().map(e -> e.getKey() + "=" + e.getValue()).collect(toList())) .withLabels(map(label, "true")) .withEnv(env.entrySet().stream().map(e -> e.getKey() + "=" + e.getValue()).collect(toList())) .withPortBindings(ports.entrySet().stream().map(e -> new PortBinding(Ports.Binding.bindPort(e.getKey()), ExposedPort.tcp(e.getValue()))).collect(toList())) .exec(); client.startContainerCmd(container.getId()).exec(); client.logContainerCmd(container.getId()).withFollowStream(true).withStdOut(true).withStdErr(true).exec( new LogContainerResultCallback() { public void onNext(Frame frame) { final String msg = new String(frame.getPayload()); log.accept(msg.endsWith("\n") ? msg.substring(0, msg.length() - 1) : msg); } }); } }
private String createContainer(String wantedImage, Ports bindings, List<String> environmentStrings) { String imageWithVersion = wantedImage; if (!imageWithVersion.contains(":")) { imageWithVersion += ":latest"; } this.ensureImageExists(imageWithVersion); return dockerClient.createContainerCmd(imageWithVersion) .withEnv(environmentStrings) .withPortBindings(bindings) .exec().getId(); }
public String run(String image, int... ports) { String containerId = docker.createContainerCmd(image).exec().getId(); List<PortBinding> portBindings = new ArrayList<>(); if (ports != null) { for (int port : ports) { portBindings.add(new PortBinding(new Ports.Binding(port), new ExposedPort(port))); } } docker.startContainerCmd(containerId).withPortBindings(portBindings.toArray(new PortBinding[portBindings.size()])).exec(); startedContainers.add(containerId); registerShutdown(containerId); return containerId; }
public void createContainer(String imageId, String containerName, boolean mountFolders, String... env) { pullImageIfNecessary(imageId, false); log.debug("Creating container {}", containerName); CreateContainerCmd createContainerCmd = getClient().createContainerCmd(imageId).withName(containerName).withEnv(env) .withVolumes(new Volume("/var/run/docker.sock")); if (mountFolders) { mountDefaultFolders(createContainerCmd); } createContainerCmd.exec(); log.debug("Container {} started...", containerName); }
public void createContainer(String imageId, String containerName, boolean mountFolders, String... env) { pullImageIfNecessary(imageId, false); log.debug("Creating container {}", containerName); CreateContainerCmd createContainerCmd = getClient().createContainerCmd(imageId).withName(containerName).withEnv(env) .withVolumes(new Volume("/var/run/docker.sock")); if (mountFolders) { mountDefaultFolders(createContainerCmd); } createContainerCmd.exec(); log.debug("Container {} started...", containerName); }
public String createContainerWithPorts(String image, int[] ports, String... command){ ExposedPort[] exposedPorts=new ExposedPort[ports.length]; for(int i=0;i < ports.length;i++){ exposedPorts[i]=ExposedPort.tcp(ports[i]); } CreateContainerResponse container = dockerClient.createContainerCmd(image) .withCmd(command) .withExposedPorts(exposedPorts) .exec(); return container.getId(); }
private String startContainer(CreateContainerCmd cmd, DockerClient client) { CreateContainerResponse createResp = cmd.exec(); StartContainerCmd startCmd = client.startContainerCmd(createResp.getId()); try { startCmd.exec(); } catch (Throwable t) { throw new ContainerException(createResp.getId(), t); } return startCmd.getContainerId(); }
/** * for publishers/builders. Simply runs container in docker cloud */ public static String runContainer(DockerTemplateBase dockerTemplateBase, DockerClient dockerClient) { CreateContainerCmd containerConfig = dockerClient.createContainerCmd(dockerTemplateBase.getImage()); dockerTemplateBase.fillContainerConfig(containerConfig); // create CreateContainerResponse response = containerConfig.exec(); String containerId = response.getId(); // start StartContainerCmd startCommand = dockerClient.startContainerCmd(containerId); startCommand.exec(); return containerId; }
private String dockerRun(String imageId) { String containerId = dockerClient.createContainerCmd(imageId).exec().getId(); dockerClient.startContainerCmd(containerId).exec(); return containerId; }
@Test public void shouldGiveLogsInStream() { containerId = dockerClient.createContainerCmd(WANTED_IMAGE).withEnv(singletonList("WAITING_TIME=1ms")) .exec() .getId(); dockerClient.startContainerCmd(containerId).exec(); Stream<String> logs = defaultDockerClient.logs(containerId); Optional<String> firstLine = logs.findFirst(); assertThat(firstLine).isPresent() .hasValueSatisfying("started"::equals); } }
@BeforeEach public void startAContainer() { ensureImageExists(WANTED_IMAGE); containerId = dockerClient.createContainerCmd(WANTED_IMAGE) .exec() .getId(); dockerClient.startContainerCmd(containerId).exec(); }
public void startNode(String id, BrowserType browserType, String nodeName, String imageId, boolean record) { // Create node pullImageIfNecessary(imageId, true); log.debug("Creating container for browser '{}'", id); CreateContainerCmd createContainerCmd = getClient().createContainerCmd(imageId).withPrivileged(true).withCapAdd(SYS_ADMIN).withName(nodeName); mountDefaultFolders(createContainerCmd); mountFiles(createContainerCmd); if (isRunningInContainer()) { createContainerCmd.withNetworkMode("bridge"); } createContainerCmd.exec(); log.debug("Container {} started...", nodeName); // Start node if stopped startContainer(nodeName); startRecordingIfNeeded(id, nodeName, record); logMounts(nodeName); logNetworks(nodeName); listFolderInContainer(nodeName, KurentoTest.getTestFilesDiskPath()); }
@BeforeEach public void startAContainer() { ensureImageExists(WANTED_IMAGE); containerId = dockerClient.createContainerCmd(WANTED_IMAGE).exec().getId(); dockerClient.startContainerCmd(containerId).exec(); }
@BeforeEach public void startAContainer() { ensureImageExists(WANTED_IMAGE); existingVolumes = volumes(); containerId = dockerClient.createContainerCmd(WANTED_IMAGE).exec().getId(); dockerClient.startContainerCmd(containerId).exec(); }
protected void createContainer(DockerClient dockerClient) throws InterruptedException { pullImage(dockerClient); CreateContainerCmd createContainerCmd = dockerClient.createContainerCmd(properties.getDockerImage()) // NOSONAR .withLabels(getAllLabels()) .withEnv(getEnvs()) .withHostConfig(buildHostConfig()); adjustCreateCommand(createContainerCmd); String containerId = createContainerCmd.exec().getId(); dockerClient.startContainerCmd(containerId).exec(); containerInfo = dockerClient.inspectContainerCmd(containerId).exec(); }