为什么我们需要在 Dockerfile 中有一个 Alpine 或 Ubuntu Base Image?

问题描述

我是 Docker 世界的新手。我想通过举个例子来问我的问题。假设有一家公司在其服务器上使用 Windows 操作系统。要运行 Docker 容器,他们需要有一个正确的 Linux 环境。因此,他们利用虚拟化技术创建了一个具有 Linux 环境的虚拟机来运行这个容器。在这里,这个 Linux 操作系统已经作为访客操作系统,那么为什么我们需要/安装 alpine 或 Ubuntu 作为 docker 文件中的基本映像?如果我的理解有误,请您纠正我。谢谢。

解决方法

Docker Container 中的所有进程都是隔离的。

因此,按照设计,您的主机程序在 Docker 映像中不可用。

从技术上讲,您不需要 AlpineUbuntu Linux 基础映像。例如,您可以使用 Scratch 图像:https://hub.docker.com/_/scratch

docker 的理念是为应用程序提供完全隔离的完全相同的环境,他们不强制使用任何基础镜像。

不过最好使用官方基础镜像,因为:

  • 您有很多关于常见发行版的教程
  • 您有许多随基础映像一起提供的预装工具。
  • 官方图片由社区维护,因此他们会为您解决问题。

Docker 使用分层设计来最小化图像的大小。更多信息请访问:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/