使用dockerjava,我不能在docker容器中运行jar文件

holgip5t  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(184)

嗨,我想用java中的docker jave库
我制作了一个基于centos的图像,其中有一个jar文件要执行(只需将数据插入mysql)
我有两种方法。
使用DockerJava创建一个容器接下来,启动容器并使用withcmd()执行它,即cd/root/docker和java-jar~
但是失败了。。没有错误,但未添加数据。

DockerClient dockerClient = DockerClientBuilder.getInstance("tcp://x.x.x.x:2375").build();
        logger.info("docker client start!");

        List<Container> containers = dockerClient.listContainersCmd()
                                                  .withShowSize(true)
                                                  .withShowAll(true)
                                                  .withStatusFilter("exited").exec();
        logger.info("containers.size : " + containers.size());

        List<Image> images = dockerClient.listImagesCmd().withShowAll(true).exec();
        logger.info("images.size() : " + images.size());

        CreateContainerResponse container = dockerClient.createContainerCmd("test:v2").withName("insert").exec();
        logger.info("container is created!");

        dockerClient.startContainerCmd(container.getId()).exec();
        dockerClient.execCreateCmd(container.getId()).withCmd("cd", "/root/docker").withAttachStdout(true).withAttachStderr(true).exec();
        dockerClient.execCreateCmd(container.getId()).withCmd("java", "-jar", "simpletest-0.0.1-SNAPSHOT-jar-with-dependencies.jar").withAttachStdout(true).withAttachStderr(true).exec();
        logger.info("container is started!");

        dockerClient.stopContainerCmd(container.getId()).exec();
        dockerClient.removeContainerCmd(container.getId()).exec();
        logger.info("container is removed!");

        logger.info("docker client end!");

我建了一个这样的dockerfile

FROM test:v2
MAINTAINER yjkim
CMD cd /root/docker && java -jar xxxxx.jar

“docker run~”命令在docker中运行良好
但我用DockerJava在java程序中尝试过
此外,没有错误,但我无法在mysql中获取任何数据
我对这种情况一无所知
有人能帮忙吗?
我用的是jdk8
maven依赖

<dependency>
    <groupId>com.github.docker-java</groupId>
    <artifactId>docker-java</artifactId>
    <version>3.0.14</version>
</dependency>

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题