首页 > 解决方案 > 为什么我需要一个像 BusyBox、Alpine 和 JDK 这样的容器基础镜像?如果我的主机操作系统是 Linux 并且里面有 JDK?

问题描述

我是 Docker 技术的新手,我根据我的问题进行了研究。像这样的类似问题很少:

docker host OS 和 container base image OS 有什么关系?

基于主机的容器与基于图像的容器

在看到 BusyBox docker 镜像之前,我以为我了解 Docker

为什么需要 Docker 的基础镜像?

但我仍然不明白如果我有一个安装了 JDK 的 Linux 主机操作系统,我应该使用基本映像操作系统还是基本映像 JDK。

我在 DockerHub 上检查了一些官方图像的 Dockerfile,我看到了 , 之类的行,FROM ubuntu我不明白为什么有必要这样做?FROM alpineFROM openjdk:8-jdk

我已经阅读了一些关于容器中文件系统的隔离或封装的内容。也许它们用于为 Java 或 OS 指定容器特定的环境变量或参数。

我将不胜感激任何解释,谢谢。

标签: dockerdockerfile

解决方案


默认情况下,容器内运行的内容无法访问主机操作系统中的文件。这就是使用容器的重点:隔离。如果您在主机操作系统中安装了 Java,并且在运行容器时将其挂载为卷,则容器内的进程可能能够将其用作它们的 Java,但这通常是一种糟糕的糟糕做法。


推荐阅读