gpt4 book ai didi

java - 如何将证书和对应的密码文件传递给Docker

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:35 28 4
gpt4 key购买 nike

我是 Docker 的新手,虽然那里有大量信息,但我不确定我是否理解到足以破译我在这里提出的问题的正确解决方案。基本上,我有一个 java app/jar 文件,我想在 docker 容器中运行。根据互联网上的一些示例,我创建了一个如下所示的 Dockerfile:

FROM openjdk:8-jdk-alpine

ADD target/custom-app-1.0.0-SNAPSHOT.jar custom-app.jar

ENTRYPOINT ["java", "-Xmx4096", "-Xms1024m", "-Djavax.net.ssl.trustStore=/etc/pki/java/trustKS.jks","-Djavax.net.ssl.trustStorePassword=$(cat /home/username/scripts/jks-password)", "-Djavax.net.ssl.trustStoreType=jks", "-Djavax.net.ssl.keyStore=/etc/pki/java/server_keystore.p12", "-Djavax.net.ssl.keyStorePassword=$(cat /home/username/scripts/server-password)", "-Djavax.net.ssl.keyStoreType=PKCS12", "-Dhttps.protocols=TLSv1.2", "-jar", "/custom-app.jar"]

在我传递给 ENTRYPOINT 命令的一些参数中,我说出了我的 keystore 和信任库文件所在的位置,以及保存其各自密码/密码的相应文件。

docker 中让使用此图像的用户使用自己的密码传递自己的证书的最佳方式是什么?

最佳答案

对于在单个节点上本地运行的容器,尤其是开发人员环境,您通常会使用这些凭据从主机安装一个卷。例如

docker run -v /host/path/creds.pem:/container/path/creds.pem:ro your_image

如果您可以进入 swarm 模式,docker 会将 secret 作为只读内存文件注入(inject),该文件仅加密存储在管理器上,并存储在需要 secret 的工作人员的内存中。这可以很简单:

docker secret create creds /host/path/creds.pem

然后将容器作为服务运行:

docker service create --secret creds your_image

有关 secret 的更多详细信息,请访问:https://docs.docker.com/engine/swarm/secrets/

为了可重现性,我通常在撰写文件中执行此操作。您可以在此处找到语法:https://docs.docker.com/compose/compose-file/

关于java - 如何将证书和对应的密码文件传递给Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56588371/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com