【发布时间】:2017-01-10 16:32:57
【问题描述】:
我有一个在 RHEL 7 服务器上运行的 PROD 环境。我想使用 docker 进行部署。我想将所有软件和应用程序打包在一个 Docker 映像中,而不需要基本操作系统。因为我不想在 RHEL 之上添加额外的层。另外,我找不到 RHEL 的官方基础镜像。那可能吗?
我看到一些关于“从头开始”的旧帖子,但看起来它在最新版本的 Docker 1.12.5 中不起作用。
如果这是不可能的,有什么建议吗?
【问题讨论】:
-
您是否尝试将环境中的所有应用程序打包到一个容器中?这在 docker 中通常是不好的做法,因为他们建议在每个容器中使用一个服务。
-
要么将整个应用程序编译成零依赖的自包含可执行文件,要么按照预期将 docker 与基本操作系统一起使用。
-
我想将我的应用程序(目前只有一个应用程序)与操作系统和其他依赖项分开。我的问题是我不想让我的基础映像具有“FROM:RHEL”来在我的主机操作系统之上引入一个附加层。
-
你总是可以使用一些超级最小的东西作为基础镜像(例如 alpine)。当 docker 启动一个容器时,它只会启动一个进程。如果您的应用程序使用 Java,那么它将启动 JVM。您需要在图像中提供的是 JVM 及其所需的所有外部库。因此,使用 Ubuntu 或 RHEL 作为基础只对构建过程(已知的 pkg 存储库或版本)有意义,当应用程序启动时,它将只使用它需要的库并忽略其余的图像。
标签: docker dockerfile rhel