Tag: Java

在被调用的docker容器之外实例化docker容器

我试图以编程方式启动docker容器在我的Java代码,将做一些数据处理,然后死一旦完成。 这是因为我们没有大量的docker集装箱不断在生产集群上进行监听。 我find了docker remote api,它允许我发送http的调用来执行各种docker命令。 我还通过Spotify发现了一个很好的库,它将环绕这些调用。 我的问题是: 如果调用远程api的代码位于docker容器中,那么在该代码中实例化的容器是否存在于callee docker容器中? 本质上是docker工人的docker工人。 这是不理想的,因为这个代码实例化的一些潜在的容器将使用大量的RAM,这将超过为被调用容器分配的RAM,特别是如果我们随时实例化n个容器。 我怎么能让Docker容器实例化与住在宿主中的其他容器一起生活? 有没有什么事情需要做,以便在Hadoop集群中工作? docker api当前正在侦听默认的unix套接字,是否需要将其更改为端口才能在集群中工作? Docker和Hadoop对我来说是新的,所以任何信息都将是最有帮助的。

dockerfile来立即运行java退出

我有以下docker文件来运行我的Java应用程序 FROM gidikern/rhel-oracle-jre RUN mkdir /application WORKDIR /application CMD "java -Dspring.profiles.active=sprofileName -jar my.war –spring.config.location=./application.properties > app.log > 2>&1" 我正在使用docker-compose运行: backend_app: restart: always image: my-app-runner:latest ports: – "8080:8080" volumes: – ./app/my.war:/application/my.war:Z – ./app/application.properties:/application/application.properties:Z – /srv/docker/backend_app/logs:/application/my.log:Z tty: true 然而,当我开始我得到我的应用程序退出代码0不断。 我找不到什么错误。

Java的jks keystore在AWS的docker上的tomcat上有CA,中级和网站证书给出“Peer's Certificate Issuer is not recognized”

我已经把jks keystore和Java 1.8 cacerts与来自我公司的证书提供者的证书放在一起,仅供内部使用,并将其构build到我的应用程序的docker版本中,并部署它并成功启动服务器并通过Chrome和Edge连接到它,但Windows 10上的Firefox没有连接,给SEC_ERROR_UNKNOWN_ISSUER“你的连接不安全”,“对方的证书颁发者不被识别”。 这就是我所做的: 我使用Java 1.8 keytool创build了我的私钥和证书请求。 获取一个根证书.cer,一个中间.cer和一个网站.cer文件 我把根证书放到java的cacerts中: keytool -importcert -alias app-cert1 -file AD1GXECA001-SHA2-Root.cer -v -keystore c:/dev/tools/Java/jdk1.8.0_131/jre/lib/security/cacer TS 我也按照这个顺序将它们连接在一起成为一个pem文件: 1. website cert 2. intermediate cert 3. company cert 并用keytool将它们插入到jks中: keytool -import -alias app-cert1 -file chain.pem -v -keystore my-app.jks 我将它们构build到我的docker映像中,该映像运行一个带有tomcat和应用程序的Spring引导器: CMD -Dlogging.file=/logs/my-app.log -Djava.security.auth.login.config=/config/login.conf -Djava.security.krb5.conf=/config/krb5.conf -Djavax.net.ssl.trustStore=/config/cacerts -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.debug=ssl -jar /my-app.jar 和Springconfiguration: server.ssl.key-alias=app-cert1 server.ssl.key-password=changeit server.ssl.key-store=file:/config/my-app.jks […]

如何在Docker卷中保存java.util.logging输出

我有一个Java应用程序。 我将我的项目导出为.war文件,构build一个Docker容器并运行它。 结构如下。 对于日志logging我使用java库。 import java.util.logging.Logger; 在我的应用程序中定义我的variables: private static final Logger logger = Logger.getLogger(BusController.class.getName()); 而对于我使用的输出例如: logger.warning("User "+XYZ+" not found!"); 当我启动我的dockerfile时,我为日志安装了一个额外的卷。 REGISTRY=xxxxx.net VERSION=latest IMAGE=busMicroservice SERVICE=busmicroservice LOCAL_DATA_PATH=/opt/docker-busmicroservice/data docker run -p xxxx:xxxxx -d -v $LOCAL_DATA_PATH:/logs –name $SERVICE –hostname $SERVICE $REGISTRY/$IMAGE:$VERSION docker集装箱启动成功后,我可以检查我的音量 docker inspect busmicroservice 并可以看到,我的卷是包括在内。 但是,我现在要做什么,日志将被保存在我的文件夹“/日志”? 我必须在我的Java应用程序中实现什么? 先谢谢你! ———编辑———- 我现在有一个额外的问题的第二个线程: 如何将日志文件保存到泊坞窗卷

docker统计数据中的cpu%非常高?

我正在尝试解决Docker容器的问题,以及什么似乎是与托pipe应用程序的某种有问题的交互。 我正在运行docker集装箱,我正在监视docker stats 。 我看到那个CPU%高达5000.02% 。 那是什么意思? 注:我没有任何configuration或调整到容器。 那么这是否意味着它需要所有的核心或只有一个核心或什么?

如何在同一个容器中运行COPY和RUN命令?

我正在尝试从rpm文件安装java到docker centos映像。 > Step 0 : FROM centos:latest —> **34943839435d** Step 1 : COPY . jdk-6u45-linux-x64-rpm.bin —> **2055e5db6ae9** Removing intermediate container 7ae13aaa4424 Step 2 : RUN chmod +x jdk-6u45-linux-x64-rpm.bin && sh jdk-6u45-linux-x64-rpm.bin —> Running in **c4d6b63576bc** jdk-6u45-linux-x64-rpm.bin: jdk-6u45-linux-x64-rpm.bin: is a directory 2014/12/16 06:03:34 The command [/bin/sh -c chmod +x jdk-6u45-linux-x64-rpm.bin && sh jdk-6u45-linux-x64-rpm.bin] returned a […]

春季启动dockerized应用程序之间的沟通

我新使用春季启动和docker,我面临运行docker集装箱的问题。 在debugging模式下,应用程序启动时没有问题,但是当我将它们作为容器运行时,出现错误。 例如,我有我的服务器configuration与所有的YML文件,也尤里卡属性。 configuration服务器启动完美,但不是尤里卡服务器,它必须find它的configuration服务器的configuration,因为这些: uri: ${vcap.services.config-service.credentials.uri:http://127.0.0.1:8888} 在尤里卡的日志中,我可以find: 无法findPropertySource:“ http://127.0.0.1:8888/server-eureka/default ”的GET请求上的I / O错误:连接被拒绝; 嵌套的exception是java.net.ConnectException:连接被拒绝 所以我看到,尤里卡不能t connect to the config server for a reason I can understund。 也许我错过了我的docker文件中的东西。

如何将JKS转换为Docker Registry cert / key?

我正在尝试在两个虚拟机(HA)上build立一个安全的Docker Registry ,并对设置SSL有疑问。 根据文档中的链接,我需要一个有两个文件的certs目录: registry.crt – CA证书 registry.key – ??? (私钥?) 我已经得到了一个Java JKS(密钥库),其中包含一个可用于这些VM的通配符CA证书。 我能够成功地从密钥库中导出证书,如下所示: keytool -export -alias certalias -file registry.crt -keystore mycerts.jks 到目前为止这么好:我有registry.crt 。 然而,一些相关的问题/担忧阻止我完成这个设置: 什么是*.key文件,它与cert有什么不同,以及如何从JKS中提取它? Docker / Registry在哪里期望在每个虚拟机上的这个certs目录? 也许/home/myuser/ ? 这个位置是可configuration的吗?!? 正如链接所解释的,如果您的CA证书是“ 中介 ”证书,则需要采取特殊的附加措施。 我怎么知道我的证书是否中介?

build立一个docker图像不会停止,因为我的世界服务器继续运行

所以我一直在努力学习docker几天,为我设定了第一个目标。 我想在docker集装箱内运行一个龙头服务器,然后在路上将它与一个BungeeCordnetworking结合起来。 我遇到了问题。 我的dockerfile运行没有问题,但一旦达到启动的Minecraft服务器的点,图像停止build设。 我认为这是由于服务器继续运行,而不是返回一个代码0来显示docker继续运行。 我的想法有错,如果不是,我该如何解决这个问题? 这是我的Dockerfile: FROM ubuntu:14.04 RUN apt-get update RUN apt-get install openjdk-7-jre icedtea-7-plugin -y RUN apt-get install wget -y RUN mkdir mc_server && cd mc_server/ RUN wget http://getspigot.org/spigot18/spigot_server.jar RUN java -Xms1536m -Xmx1536m -Dcom.mojang.eula.agree=true -jar spigot_server.jar nogui 这样服务器启动,但docker工人永远不会完成build设。 我希望我明确地解决了我的问题。 问候,乔尔

是否有必要在Java中使用Docker?

由于Docker目前是一个非常热门的技术,但我只是想知道Java是否有必要? 我在下面列出我的理由,并欢迎任何反馈意见: JVM就像一个虚拟机,它与操作系统分开的应用程序 Maven,pipe理依赖关系 Spring Boot,支持像tomcat那样embeddedJ2EE servelet容器,所有的应用程序都可以作为标准的JAR文件输出。 所以,除了你自己需要安装JDK之外,其他的一切都是一致的和有组织的。 我比较下面的Java和Docker: JAR – >图像 JVM – > VM 那么,Docker对于Java来说真的意味着什么?