gpt4 book ai didi

docker - 在 Docker 'From Scratch' 中,操作系统将运行

转载 作者:行者123 更新时间:2023-12-01 01:43:42 24 4
gpt4 key购买 nike

在 docker hello-world 示例中,基础镜像是 Scratch,所以如果我没有提到基础镜像中的任何操作系统,那么命令将在哪里执行。
它会在主机操作系统中执行(我的操作系统是 mac)还是
它会在 docker 软件中执行还是
将在内部创建任何操作系统

如果它在主机操作系统中执行,那么我将编写 mac 命令(我的主机操作系统是 mac),现在如果我将该图像提供给他的操作系统是 windows 的某个人,它是否运行?

最佳答案

“操作系统”这个词已经有点过载了。

Docker 容器始终在 Linux 内核上运行( native Windows 容器除外)。在非 Linux 系统(例如 Mac)上有一个 Linux 虚拟机,容器始终在该 VM 上运行。所有容器共享该“主机”或 VM 内核(默认情况下禁止进行会影响整个系统的更改)。

“操作系统”也可以指运行在内核之上的一系列库、实用程序和程序。 Docker 允许您运行 Ubuntu 用户空间、Alpine 用户空间或其他一些用户空间……或者根本没有用户空间。它们之间可能存在轻微的不兼容(如果您在 GNU libc 中使用一些特定的东西;如果您相信 /bin/sh 总是 GNU bash;...)。

你通常不想要 FROM scratch .除了像 /proc 这样的几位之外,你什么也得不到。和 /dev Docker 为你提供的。例如,您没有获得 shell 。如果您有一个静态链接的 Linux 二进制文件并且无论出于何种原因想要将其包装在容器中(您的应用程序通常必须用 C、C++ 或 Go 编写,并且您需要采取特殊步骤来静态链接它),这将是最有用的.

Docker 永远不会导致命令在主机上运行(特别是如果涉及到 VM 层),并且如果您的程序的主要目标是与主机程序交互或读取和写入主机文件,那么您主动不想要 Docker 提供的隔离.不同的包装系统可能更适合您。

关于docker - 在 Docker 'From Scratch' 中,操作系统将运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53542498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com