@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)));
  }
Esempio n. 6
0
  @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);

  }