packagecom.simple.docker.util;importcom.alibaba.fastjson.JSONObject;importcom.github.dockerjava.api.DockerClient;importcom.github.dockerjava.api.command.CreateContainerResponse;importcom.github.dockerjava.api.model.ExposedPort;importcom.github.dockerjava.api.model.Info;importcom.github.dockerjava.api.model.Ports;importcom.github.dockerjava.core.DockerClientBuilder;import staticcom.github.dockerjava.api.model.HostConfig.newHostConfig;public classDockerClientService {/*** 连接docker服务器
*@return
*/
publicDockerClient connectDocker(){
DockerClient dockerClient= DockerClientBuilder.getInstance("tcp://192.168.137.12:2375").build();
Info info=dockerClient.infoCmd().exec();
String infoStr=JSONObject.toJSONString(info);
System.out.println("docker的环境信息如下:=================");
System.out.println(info);returndockerClient;
}/*** 创建容器
*@paramclient
*@return
*/
publicCreateContainerResponse createContainers(DockerClient client,String containerName,String imageName){//映射端口8088—>80
ExposedPort tcp80 = ExposedPort.tcp(80);
Ports portBindings= newPorts();
portBindings.bind(tcp80, Ports.Binding.bindPort(8088));
CreateContainerResponse container=client.createContainerCmd(imageName)
.withName(containerName)
.withHostConfig(newHostConfig().withPortBindings(portBindings))
.withExposedPorts(tcp80).exec();returncontainer;
}/*** 启动容器
*@paramclient
*@paramcontainerId*/
public voidstartContainer(DockerClient client,String containerId){
client.startContainerCmd(containerId).exec();
}/*** 启动容器
*@paramclient
*@paramcontainerId*/
public voidstopContainer(DockerClient client,String containerId){
client.stopContainerCmd(containerId).exec();
}/*** 删除容器
*@paramclient
*@paramcontainerId*/
public voidremoveContainer(DockerClient client,String containerId){
client.removeContainerCmd(containerId).exec();
}
}