问题描述
嗨,我正在尝试在 Java 中使用 docker-jave 库
我基于centos制作了一个图像,里面有一个jar文件要执行(只需将数据插入mysql)
我做了两种方法。
- 使用 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!");
- 我像这样构建了一个 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 (将#修改为@)