package com.se.docker.service;
|
|
import com.github.dockerjava.api.DockerClient;
|
import com.github.dockerjava.api.command.CreateContainerResponse;
|
import com.github.dockerjava.api.command.InspectContainerResponse;
|
import com.github.dockerjava.core.DockerClientBuilder;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
|
@Service
|
@SuppressWarnings("ALL")
|
public class SysDockerService {
|
//@Value("${docker.prefix}")
|
public String localFilePrefix;
|
|
private static final Logger log = LoggerFactory.getLogger(SysDockerService.class);
|
|
public String test() throws Exception {
|
return "docker: " + System.currentTimeMillis();
|
}
|
|
/**
|
* java DockerClient操作
|
* https://blog.csdn.net/weixin_45198228/article/details/130060333
|
*/
|
public void t() {
|
try {
|
// 创建Docker客户端实例
|
DockerClient dockerClient = DockerClientBuilder.getInstance("unix:///var/run/docker.sock").build();
|
|
// 创建并启动一个新的容器
|
CreateContainerResponse container = dockerClient.createContainerCmd("busybox")
|
.withCmd("echo", "Hello Docker!")
|
.exec();
|
|
// 启动容器
|
dockerClient.startContainerCmd(container.getId()).exec();
|
|
// 检查容器状态
|
InspectContainerResponse inspectContainerResponse = dockerClient.inspectContainerCmd(container.getId()).exec();
|
System.out.println(inspectContainerResponse.toString());
|
|
// 停止并移除容器
|
dockerClient.removeContainerCmd(container.getId()).withRemoveVolumes(true).exec();
|
|
// 关闭Docker客户端
|
dockerClient.close();
|
} catch (Exception ex) {
|
log.error(ex.getMessage(), ex);
|
}
|
}
|
}
|