嗨,我想用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>
暂无答案!
目前还没有任何答案,快来回答吧!