blob: 536a80e87706172dfa6e8cbdecbc7664a7477590 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
package net.libertacasa.pubsh.web;
import java.time.Duration;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.command.InspectExecResponse.Container;
import com.github.dockerjava.api.command.ListContainersCmd;
import com.github.dockerjava.api.model.Image;
import com.github.dockerjava.core.DefaultDockerClientConfig;
import com.github.dockerjava.core.DockerClientConfig;
import com.github.dockerjava.core.DockerClientImpl;
import com.github.dockerjava.httpclient5.ApacheDockerHttpClient;
import com.github.dockerjava.transport.DockerHttpClient;
public class Docker {
static DockerClientConfig DockerConfig = DefaultDockerClientConfig.createDefaultConfigBuilder()
.withDockerHost("tcp://sweetsuse:2375")
.withDockerTlsVerify(false)
.build();
static DockerHttpClient httpClient = new ApacheDockerHttpClient.Builder()
.dockerHost(DockerConfig.getDockerHost())
.sslConfig(DockerConfig.getSSLConfig())
.maxConnections(100)
.connectionTimeout(Duration.ofSeconds(30))
.responseTimeout(Duration.ofSeconds(45))
.build();
static DockerClient dockerClient = DockerClientImpl.getInstance(DockerConfig, httpClient);
public static List<String> getImageChecksums() {
List<Image> imageQuery;
List<String> imageList;
imageQuery = dockerClient.listImagesCmd().exec();
imageList = imageQuery.stream().map(Image::getId).collect(Collectors.toList());
return imageList;
}
public static List<Image> getImages() {
List<Image> imageQuery;
imageQuery = dockerClient.listImagesCmd().exec();
return imageQuery;
}
public static List<com.github.dockerjava.api.model.Container> getContainers() {
List<com.github.dockerjava.api.model.Container> containerQuery;
containerQuery = dockerClient.listContainersCmd().withShowAll(true).exec();
return containerQuery;
}
public static void deleteContainer(String id) {
Collection<String> stringifiedId = Arrays.asList(id);
System.out.println(id);
System.out.println(stringifiedId);
List<com.github.dockerjava.api.model.Container> containerQuery = dockerClient.listContainersCmd().withShowAll(false).withIdFilter(stringifiedId).exec();
//apparently listContainersCmd returns a bunch of garbled crap, hence the less ideal toString/contains
if(! containerQuery.toString().contains(id)) {
System.out.println("Not found in running containers ...");
List<com.github.dockerjava.api.model.Container> containerQueryAll = dockerClient.listContainersCmd().withShowAll(true).withIdFilter(stringifiedId).exec();
if(containerQueryAll.toString().contains(id)) {
System.out.println("Found in stopped containers ...");
}
if(! containerQueryAll.toString().contains(id)) {
System.out.println("Not found at all. The fuck.");
}
}
if(containerQuery.toString().contains(id)) {
System.out.println("Found in running containers, stopping ...");
dockerClient.stopContainerCmd(id).exec();
}
//System.out.println(containerQuery);
dockerClient.removeContainerCmd(id).exec();
}
}
|