【问题标题】:How can I run a Docker container without installing Docker Hub?如何在不安装 Docker Hub 的情况下运行 Docker 容器?
【发布时间】:2021-07-06 17:08:10
【问题描述】:

如何在不安装 Docker Hub 的情况下运行 Docker 容器?

例如:

  1. 是否有可以从另一个程序中执行 docker 命令的库?
  2. 也许是一个轻量级的.exe,我可以将它与容器一起分发以运行它?

我正在向公众分发我的应用程序,我不能指望他们安装 Docker Hub。他们必须能够下载最新版本并只需双击 something 即可启动它(例如 .exe.bat

我的应用程序是一个 Java 学习游戏。

【问题讨论】:

  • 这真的需要一个容器,还是你只需要一个JVM?有没有更有意义的预构建解决方案来运行 Java 应用程序而无需单独安装 JRE?
  • 答案不一定?但是因为该应用程序是可修改的(使用 Java/JAR 文件),我认为容器化会增加安全性,而且它可能更容易管理程序资源,因为我不需要处理不同的操作系统。
  • 但是Java已经是独立于平台的了,为什么还要处理不同的操作系统呢? Docker 只会添加混淆,不会添加安全性。如果有人决定看看里面有什么,如果他们打算反编译类或你害怕的任何东西,一个 docker 容器不会有太大的麻烦。
  • 我的想法是沙盒修改代码可能不安全 - 我的理解是容器内执行的代码不知道父设备,因此恶意代码将无法访问设备作为一个整体。小担心,但这是我推理的一部分。
  • 所以你害怕一个流氓插件破坏你的用户系统。您是否考虑过 SecurityManager 或者您是否让 C++ 插件正常工作,可以绕过它?某种形式的签名方案也可以在更大范围内为插件工作。

标签: java docker containers


【解决方案1】:

Docker“Hub”是一个网站。你不安装它。

要运行 Docker 容器,您需要安装 Docker 守护进程,无论您要运行什么应用程序代码。不,Docker 不安全,也没有声称是安全的。

还有其他用于运行容器的 containerd 实现(尽管并非专门针对 Windows),但是所有这些都需要安装一些东西

如果您要分发 JVM 应用程序,那么现实世界中有很多这样做的示例。例如,Intellij 和 Eclipse 是用 Java 编写的,不需要 Docker,那么您为什么认为您会这样做呢?

参考How can I convert my Java program to an .exe file?

【讨论】:

  • 公平地说,运行容器的是 Docker 守护进程,尽管我指的是(正确或错误地)桌面应用程序。我之前考虑过使用 Launch4J 将其打包为 .exe 文件(尽管我认为这是一个不同时期的问题,并且会引发许多新问题)。我...不认为您需要 Docker 来运行 Java 应用程序...无论哪种方式,我认为在这个问题中我正在寻找像 Podman 这样的解决方案(同样,我没有仔细研究过),不过我认为人们的建议已经足够深思了。谢谢大家!
猜你喜欢
  • 1970-01-01
  • 2019-08-17
  • 2014-08-20
  • 2013-09-22
  • 2019-07-27
  • 2019-06-25
  • 1970-01-01
  • 2017-11-11
  • 2019-12-13
相关资源
最近更新 更多