@Test(groups = "ignoreInCircleCi") public void testStopContainer() throws DockerException { final RemoteApiVersion apiVersion = getVersion(dockerClient); CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("sleep", "9999").exec(); LOG.info("Created container: {}", container.toString()); assertThat(container.getId(), not(isEmptyString())); dockerClient.startContainerCmd(container.getId()).exec(); LOG.info("Stopping container: {}", container.getId()); dockerClient.stopContainerCmd(container.getId()).withTimeout(2).exec(); InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec(); LOG.info("Container Inspect: {}", inspectContainerResponse.toString()); assertThat(inspectContainerResponse.getState().getRunning(), is(equalTo(false))); final Integer exitCode = inspectContainerResponse.getState().getExitCode(); if (apiVersion.equals(VERSION_1_22)) { assertThat(exitCode, is(0)); } else { assertThat(exitCode, not(0)); } }
@Test() public void inspectContainer() throws DockerException { String containerName = "generated_" + new SecureRandom().nextInt(); CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("top").withName(containerName).exec(); LOG.info("Created container {}", container.toString()); assertThat(container.getId(), not(isEmptyString())); InspectContainerResponse containerInfo = dockerClient.inspectContainerCmd(container.getId()).exec(); assertEquals(containerInfo.getId(), container.getId()); }
@Test public void inspectContainerRestartCount() throws DockerException { CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("env").exec(); LOG.info("Created container {}", container.toString()); assertThat(container.getId(), not(isEmptyString())); InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec(); assertThat(inspectContainerResponse.getRestartCount(), equalTo(0)); }
@Test public void inspectContainerNetworkSettings() throws DockerException { CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("env").exec(); LOG.info("Created container {}", container.toString()); assertThat(container.getId(), not(isEmptyString())); InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec(); assertFalse(inspectContainerResponse.getNetworkSettings().getHairpinMode()); }
@Test public void testWaitContainer() throws DockerException { CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true").exec(); LOG.info("Created container: {}", container.toString()); assertThat(container.getId(), not(isEmptyString())); dockerClient.startContainerCmd(container.getId()).exec(); int exitCode = dockerClient.waitContainerCmd(container.getId()).exec(); LOG.info("Container exit code: {}", exitCode); assertThat(exitCode, equalTo(0)); InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec(); LOG.info("Container Inspect: {}", inspectContainerResponse.toString()); assertThat(inspectContainerResponse.getState().isRunning(), is(equalTo(false))); assertThat(inspectContainerResponse.getState().getExitCode(), is(equalTo(exitCode))); }
@POST public Response createContainer( @FormParam("containerName") String containerName, @FormParam("userId") String userId, @FormParam("cmd") String cmd, @FormParam("imageName") String imageName) throws HibernateException { DockerClient dockerClient = MyDockerClient.getDockerClient(); try { String[] cmdarr = {}; if (!("".equals(cmd) || cmd == null)) cmdarr = cmd.split(" "); CreateContainerResponse ccResponse = dockerClient .createContainerCmd(imageName) .withName(containerName) .withTty(true) .withStdinOpen(true) .withCmd(cmdarr) .exec(); System.out.println("have created" + ccResponse.toString()); List<Container> containers = dockerClient.listContainersCmd().withShowAll(true).exec(); String fullNameString = null; for (int i = 0; i < containers.size(); i++) { if (containers.get(i).getId().equals(ccResponse.getId())) { fullNameString = containers.get(i).getNames()[0]; System.out.println("find it" + fullNameString); } } String hostName = fullNameString.split("/")[1]; // Map<String, String> mes = new HashMap<String, String>(); // mes.put("id", ccResponse.getId()); // mes.put("assignHost", hostName); model.Container con = new model.Container( containerName, Integer.valueOf(userId), imageName, ccResponse.getId(), hostName); beginTransaction(); Serializable s = session.save(con); endTransaction(true); System.out.println(s); return ParseToReponse.parse("1", "createContainer successfully", "id:" + s, 0); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return ParseToReponse.parse("1", e.getMessage(), "id:", 0); } // String queryString = "from Image where name=?"; // beginTransaction(); // Query query = session.createQuery(queryString); // query.setParameter(0, imageFullNname); // List<Image> image1 = query.list(); // if(image1.size()>0){ // beginTransaction(); // Image Image2 = (Image) session.load(Image.class, // image1.get(0).getId()); // session.delete(Image2); // endTransaction(true); // } // Image image = new Image(imageFullNname, Integer.valueOf(isPublic), // Integer.valueOf(userId), imageLongId); // beginTransaction(); // Serializable s = session.save(image); // endTransaction(true); // System.out.println(s); }