1
13693261870
2024-12-08 864536db862bcde4ac0f281cff54cd4940380976
se-modules/se-docker/src/main/java/com/se/docker/service/SysDockerService.java
@@ -1,5 +1,11 @@
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;
@@ -9,7 +15,40 @@
    //@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);
        }
    }
}