Tag: Java

如何加速Docker容器的启动时间?

我是使用Docker容器化应用程序的新手。 我可以部署一个包含war文件的容器。 这场战争基本上是一个JAVA web应用程序/ servlet,它在收到最终用户的请求后发回一个video文件。 使用docker的应用程序部署是成功的,应用程序工作正常。 不过,我有一些关于启动时间的问题。 从我通过命令docker run -it -d -p 8080:8080 surrogate创build容器的那一刻起,容器docker run -it -d -p 8080:8080 surrogate需要大约5-6分钟,这意味着容器生命周期的前5-6分钟,它没有响应最终用户的请求,之后,它工作正常。 有什么办法来加速这个启动时间? Dockerfile包括: FROM tomcat:7.0.72-jre7 ADD surrogate-V1.war /usr/local/tomcat/webapps/ CMD ["catalina.sh", "run"] WORKDIR "/usr/local/tomcat/" RUN wget https://www.dropbox.com/s/1r8awydc05ra8wh/a.mp4?dl=1 RUN cp a.mp4\?dl\=1 lego.mp4

从socket.getInpitStream()读取时返回的二进制字符

package com.examenginedashboard.docker.utils; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; import com.examenginedashboard.CONSTANTS.MyValuesConstans; import com.examenginedashboard.codePG.service.HttpHijack; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.command.CreateContainerResponse; import com.github.dockerjava.api.command.DockerCmdExecFactory; import com.github.dockerjava.api.command.ExecCreateCmdResponse; import com.github.dockerjava.api.command.InspectExecResponse; import com.github.dockerjava.api.model.Bind; import com.github.dockerjava.api.model.ExposedPort; import com.github.dockerjava.api.model.Ports; import com.github.dockerjava.api.model.Volume; import com.github.dockerjava.core.DefaultDockerClientConfig; import com.github.dockerjava.core.DockerClientBuilder; import com.github.dockerjava.core.DockerClientConfig; import com.github.dockerjava.core.command.ExecStartResultCallback; import com.github.dockerjava.jaxrs.JerseyDockerCmdExecFactory; public class APIBasedCodeCompiler { public static void connectToDocker(){ DockerCmdExecFactory […]

安装时出现Confluence Error 500

我试图build立Confluence时说错误500,说没有find bean i18NBean。 我正在运行一个debian Jessie,并试图在这个turotial之后的Docker容器中安装合stream 总是遇到“数据库设置步骤”时,总会发生此错误,以便设置数据库。 奇怪的是,这也发生在我尝试使用embedded式数据库时…

Docker IBM SDK-8 Image – 获取线程/内存转储

我正在使用ibmcom / ibmjava:8-sdk映像。 我如何获得线程转储和内存转储? 我用-Xdump选项启动了jvm。 但是,当我给杀-3皮 – 没有消息,转储创build。

Docker中的卷的FTP服务器

我正在开发一个应该创build一个CSV文件并保存在一个卷中的微服务。 我在Bluemix Cloud中编写Java (Spring)。 目前,我需要将创build的文件公开到另一个服务外 (我需要为每个创build的文件创build一个URL)。 我的一个解决scheme是创build另一个应该通过FTP检索文件的微服务,因为我需要一个文件服务器。 那么,这是揭露资源的最好方法吗? 如果我需要文件服务器,我应该如何configuration它来提取我的共享卷内容?

docker客户端Java:如何保持实例运行?

我正在使用Java docker-client尝试与本地硬盘上的docker-image进行交互。 <dependency> <groupId>com.github.docker-java</groupId> <artifactId>docker-java</artifactId> <version>3.0.6</version> </dependency> 我想加载一个图像,然后在同一个运行实例中执行几个命令。 我不明白如何保持开放。 似乎每一次执行都会创build一个新实例,这也意味着前一个实例的更改不再存在。 我不想保存更改的状态。 我打算将python代码部署到实例中,执行它并收到我写入STDOUT的结果。 我设法启动一个实例并在Ubuntu中执行“ls”,但是我不知道如何停留在同一个实例中并执行第二个命令? 这是我现在开始执行我的命令的方式。 我会很感激一个指针 DockerClient dockerClient = DockerClientBuilder.getInstance(DefaultDockerClientConfig.createDefaultConfigBuilder() .withRegistryUrl("https://index.docker.io/v1/")) .withDockerCmdExecFactory(DockerClientBuilder.getDefaultDockerCmdExecFactory()) .build(); InspectImageResponse exec = dockerClient.inspectImageCmd(imageName).exec(); System.out.println(exec.getId() + " " + exec.getCreated()); CreateContainerResponse container = dockerClient.createContainerCmd(imageName).withCmd("ls") .withTty(false).exec(); System.out.println("CreateContainerResponse Id: " + container.getId()); dockerClient.startContainerCmd(container.getId()).exec(); AttachContainerTestCallback callback = new AttachContainerTestCallback(); dockerClient.attachContainerCmd(container.getId()).withStdErr(true).withStdOut(true).withFollowStream(true) .withLogs(true).exec(callback).awaitCompletion(); callback.close(); } public static class […]

docker工人 – 用curl安装java 8

为了在docker容器上安装java 8,我在dockerfile中使用了这个命令 RUN curl -LO 'http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.rpm' -H 'Cookie: oraclelicense=accept-securebackup-cookie' RUN rpm -i jdk-8u111-linux-x64.rpm RUN rm jdk-8u111-linux-x64.rpm 它工作了一段时间,但现在这个链接不再是可用的。 有可replace的url吗? 或简单的方法来停止在docker上的Java 8?

在AWS上的Docker中Spring引导logging系统出现内存泄漏?

我有一个在AWS中快速运行的Dockerised Spring Boot应用程序,并configuration了awslogs驱动程序,以将日志条目stream式传输到CloudWatch。 我的应用程序被configuration为login到系统,我假定awslogs驱动程序正在监听日志条目。 但是,如果我的服务是长期运行的日志(系统出)有效的内存泄漏? 如果是这样,我更好地login到旋转文件,并以某种方式configurationawslogs从这些文件中读取? (后一种情况的文档指针将不胜感激。)

docker如何与IBM WebSphere一起工作?

过去几天我一直在读docker。 我所从事的传统系统是使用IBM Websphere生态系统。 前面有一个负载均衡器。 负载均衡器将请求路由到不同的节点。 节点下面有簇。 集群可以有许多JVM。 我可以使用docker而不是JVM和相关服务器。但是节点和负载平衡器将保持在那里。这是正确的理解吗? 如果是的话,我们将在哪里有docker群? Docker Swarm通常用于在多个Docker容器之间进行协调。 但是这里的集群应该在不同的docker之间分配数据。 同样的道理,我不能理解Kubernetes将被插入到哪里,因为我了解的方式是kubernetes将帮助不同docker集装箱之间的负载均衡等。负载平衡将由websphere插件完成。 kubernetes在这里需要什么?

有超过2个容器时,不能访问docker容器

在Windows 10下,我有一个docker容器app ,它的内部是java FROM openjdk:8 server FROM openjdk:8 。 Java服务器在端口8080上启动,容器在Dockerfile中公开这个端口。 当我运行这个容器的两个实例并将它们绑定到主机上的不同端口时,我可以通过具有不同端口的相同IP(VirtualBox Host-Only Network)访问它们。 当我运行第三个实例 – 所有的实例变得无法访问这个IP,但容器和应用程序仍在运行。 当我最近停下来开始第三个容器时 – 前两个容器可以在一段时间内再次通过IP访问。 我尝试将这些容器连接到不同的networking(桥和新创build的),但这并没有帮助。 用命令启动容器: docker run –rm –name first_instance -v repo:/volume -it -p 8080:8080 app docker run –rm –name second_instance –volumes-from first_instance -it -p 8081:8080 app docker run –rm –name third_instance –volumes-from first_instance -it -p 8082:8080 app Dockerfile是:(Docker版本:17.03.1-ce) […]