Tag: docker java

如何从DockerClient.waitContainerCmd()等待ResultCallback?

在我们的J2EE项目中,我们通过依靠docker -java调用java代码中的sjourdan / ffmpeg docker来进行一些video转换。 就目前来看,它看起来像这样(为了简洁,相当简化): CreateContainerCmd createCommand = dockerClient.createContainerCmd("sjourdan/ffmpeg") .withVolumes(aVolume) .withBinds(aBind) .withCmd("a lot of options about the conversion itself, codec, ratio, …"); CreateContainerResponse container = createCommand.exec(); dockerClient.startContainerCmd(container.getId()).exec(); // vanilla implementation of ResultCallback MyResultCallback callback = new MyResultCallback(); dockerClient.waitContainerCmd(container.getId()).exec(callback); 事实上,这个线程一直在等待callback被callback。 我们应该如何强制线程等待直到callback被调用,通知我们docker命令已经完全结束了? 在另一个说明中,如果有人知道如何使用–rm -java将–rm参数添加到正在docker run的–rm docker run命令中,我很感兴趣。

Arquillian Cube与RestEasy合作吗?

Arquillian Cube不能使用RestEasy实现。 我得到如下错误: 导致:javax.ws.rs.ProcessingException:RESTEASY003145:无法find内容typesapplication / vnd.docker.raw-Stream的MessageBodyReader,并键入类java.io.InputStream

无法推送图片:拒绝:请求访问资源被拒绝

我使用docker-java在运行在Ubuntu 16.04虚拟机上的Docker主机上创build映像。 图像创build工作得很好,我可以列出通过docker-java创build的图像。 但是当我试图把图像推到一个私人的registry(港),我得到 com.github.dockerjava.api.exception.DockerClientException: Could not push image: denied: requested access to the resource is denied 我已将当前用户添加到usergroup docker并可以使用terminal中的以下命令手动推送图像(请注意,不能使用sudo)。 docker login docker push some_ip/app/test:test 但是,当我从我的Java代码进行以下调用,我得到上述错误。 dockerClient.pushImageCmd("10.107.173.190/container-apps/test:testapp") .exec(pushImageResultCallback).awaitSuccess(); 可能的线索: docker守护进程在被API调用时使用哪个configuration文件? 我怎样才能确保它有足够的访问?

Windows Server 2016 OpenJDK docker容器

我在Windows Server 2016上运行docker,当我尝试使用包含此文本的Dockerfile构build一个图像时: FROM openjdk:8-jdk-alpine ADD target/eureka-server-one.jar app.jar EXPOSE 8761 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] 然后运行“docker build -f Dockerfile -t eurekaserverone”。 我得到的错误:没有匹配清单的窗口/ amd64在清单列表项中,我不记得这个错误在Windows 10的机器上。 什么是造成这个错误,有没有一个解决scheme呢?

如何创build和启动Docker容器与特定的端口,使用docker-java分离模式

我想使用docker java客户端来创build和运行docker。 我想运行这样的东西: docker run -d -p 4444:4444 –name selenium-hub selenium/hub:2.53.0 如何在docker-java客户端上实现这个命令? 这是我的代码到目前为止: CreateContainerResponse response = dockerClient.createContainerCmd("selenium/hub") .withName(name) .exec(); 其实IDK如何指定-d(在后台运行)。 和-p。 请帮帮我。 抱歉,我是Docker中的新成员。

控制docker – 用Java编写

我创build了相当数量的docker-compose脚本,它们产生了多个服务。 我现在想要在JVM中控制docker-compose。 基本上,我希望能够down执行,理想情况下使用-p <project name>参数,所以我可以同时产生多个实例。 这在Java中可能吗?

docker的Java /docker远程API截止,直到容器完成

我正在尝试使用docker-java从java中使用docker远程API,我正在努力寻找一种方法来查看当我的容器的执行已经完成: CreateContainerResponse container = dockerClient.createContainerCmd("me/vw:v0.1") .withVolumes(workingDIR) .withBinds(new Bind("/localDrive", workingDIR)) .withCmd("vw", "/rcv1/rcv1.train.vw.gz", "–cache_file", "/rcv1/cache_train", "-f", "/rcv1/r_temp") .withLogConfig(logconf) .exec(); dockerClient.startContainerCmd((container.getId())).exec(); Thread.sleep(10000); //OBVIOUSLY BROKEN HACK IS BROKEN System.out.println("PRINTING LOGS"); System.out.println(containerLog(container.getId(), dockerClient)); 什么是检查容器是否完成的正常方法? 我必须写一些轮询docker服务器,还是有一些方便的阻塞函数/调用? docker-java有非常糟糕的文档,大部分工作都是从testing用例来看的。 干杯, 缺口

如何使用docker-java获取正在运行的容器的容器ID?

我正在运行一个名称标签,它允许我识别它的容器。在docker-java中,它需要大部分操作的容器ID,我不知道如何得到使用docker-java.an任何人都可以帮助我如何获得正在运行的容器的容器Id? 例如: docker工人 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8945dcd6195b e7a064b1705a "java '-Duser.time…" 4 days ago Up 20 seconds runDataMock 我正在寻找一种方法,我可以使用ContainerNames获取ContainerId。 注:我知道下面的方法创build一个新的容器,并select该ID。 dockerClient.createContainerCmd(imageName).exec()。的getId()

如何玩docker-javadocker运行–rm?

在我们的J2EE项目中,我们想通过docker -java库调用sjourdan / ffmpeg docker 。 一个典型的ffmpeg转换要求是这样的: docker run –rm -v /e/data:/tmp/workdir sjourdan/ffmpeg -i /tmp/workdir/test.mov -f mp4 -vcodec libx264 -acodec aac /tmp/workdir/test.mp4 我们用DockerClient.createContainerCmd()和右边的.with()方法来pipe理所有这些,除了–rm参数。 有没有办法通过docker-java添加它?

使用docker-java从Amazon ECR中提取图像

我正在使用docker-java客户端从Amazon ECR中拉取图像时遇到问题。 ECR注册loginvalidation成功,但无法从存储库中提取特定映像。 奇怪的是,login到ECR使用bash和拉图像使用docker工程。 我正在使用java版本的docker库( https://github.com/docker-java/docker-java/ )。 如何debugging或解决这个问题的任何帮助将是有用的。 // ECR client AmazonECRClient ecrClient = new AmazonECRClient(awsCredentialsProvider); GetAuthorizationTokenRequest getAuthTokenRequest = new GetAuthorizationTokenRequest(); List<String> registryIds = new ArrayList<String>(); registryIds.add("accountid"); getAuthTokenRequest.setRegistryIds(registryIds); // Get Authorization Token GetAuthorizationTokenResult getAuthTokenResult = ecrClient.getAuthorizationToken(getAuthTokenRequest); AuthorizationData authData = getAuthTokenResult.getAuthorizationData().get(0); String userPassword = StringUtils.newStringUtf8(Base64.decodeBase64(authData.getAuthorizationToken())); String user = userPassword.substring(0, userPassword.indexOf(":")); String password = userPassword.substring(userPassword.indexOf(":")+1); DockerClientConfigBuilder config […]