docker - 为什么我需要一个像 BusyBox、Alpine 和 JDK 这样的容器基础镜像?如果我的主机操作系统是 Linux 并且里面有 JDK?
问题描述
我是 Docker 技术的新手,我根据我的问题进行了研究。像这样的类似问题很少:
docker host OS 和 container base image OS 有什么关系?
在看到 BusyBox docker 镜像之前,我以为我了解 Docker
但我仍然不明白如果我有一个安装了 JDK 的 Linux 主机操作系统,我应该使用基本映像操作系统还是基本映像 JDK。
我在 DockerHub 上检查了一些官方图像的 Dockerfile,我看到了 , 之类的行,FROM ubuntu
我不明白为什么有必要这样做?FROM alpine
FROM openjdk:8-jdk
我已经阅读了一些关于容器中文件系统的隔离或封装的内容。也许它们用于为 Java 或 OS 指定容器特定的环境变量或参数。
我将不胜感激任何解释,谢谢。
解决方案
默认情况下,容器内运行的内容无法访问主机操作系统中的文件。这就是使用容器的重点:隔离。如果您在主机操作系统中安装了 Java,并且在运行容器时将其挂载为卷,则容器内的进程可能能够将其用作它们的 Java,但这通常是一种糟糕的糟糕做法。
推荐阅读
- twilio - 在 Twilio 函数中检索置信度分数?
- xpath - 使用 XPATH 从 div 内部获取值
- sql - 如何在 SQL 中进行 Contains(Description, 'a') 搜索,例如 Like'%a%'
- react-native - 如何在 Android 上的 react-native 应用程序上删除白色闪烁?
- node.js - 向特定用户发送消息?
- python - 使用 Python 请求填写网站表单
- android - 在leanback GridLayoutManager中找到第一个可见位置
- javascript - 仅在 PHP 中使用 Fetch 成功后重定向页面
- ios - 访问 App store 中的“协议、税务和银行”连接
- javascript - 在画布中动态添加下拉菜单