使用 docker-java,我无法在 docker 容器中运行 jar 文件

问题描述

嗨,我正在尝试在 Java 中使用 docker-jave 库

我基于centos制作了一个图像,里面有一个jar文件要执行(只需将数据插入mysql)

我做了两种方法。

  1. 使用 docker-java 创建一个容器 接下来,启动容器并使用 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!");
  1. 我像这样构建了一个 Dockerfile
FROM test:v2
MAINTAINER yjkim
CMD cd /root/docker && java -jar xxxxx.jar

和 'docker run ~' 命令在 docker 中工作正常

但我在使用 docker-java 的 java 程序中尝试

另外,没有错误,但我无法在mysql中获取任何数据

我不知道这种情况

有人可以帮忙吗?

我正在使用 jdk 8

maven 依赖

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...