gpt4 book ai didi

docker - docker 是否总是需要操作系统作为基本镜像

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

我听说docker在linux中不需要单独的os,因为它与主机os共享,但是在hyper-v Windows中,它可以运行Windows OS,因为它可以在linux虚拟机上运行 super ,因此可以在其上运行linux软件。

但是,我对dockerfile中的FROM阶段感到困惑,所有指南都这样说:

FROM ubuntu:18.04
cp . /usr/local/bin
RUN make
CMD /usr/local/bin/youapp

我可以理解这一步,首先需要一个操作系统,然后再部署应用程序。最后,您运行您的应用程序或其他任何东西。

但是FROM阶段的真正含义是什么?

是否总是需要一个操作系统? nginx docker镜像中是否包含操作系统?

如果要构建自己的应用程序,请编写,编译,运行。但是我自己的应用需要操作系统吗?如果没有,我应该在FROM阶段写什么?

我得到这张照片,它说docker容器不需要os,但是使用主机os,现在docker build总是需要os
enter image description here

最佳答案

主机上的容器共享(主机的)内核,但是每个容器都必须提供其所需的OS(子集)。

在Windows中,存在kernel:OS的1:1映射,但是在Linux中,内核被 bundle 到各种OS中:Debian,Ubuntu,Alpine,SuSE,CoreOS等。
FROM语句通常引用一个操作系统,但是它不是必需的,并且通常不需要(也不是一个好主意)将操作系统 bundle 在一个容器中。容器应仅包括所需内容。

NGINX镜像使用Debian(Dockerfile)。

在某些情况下,容器进程没有内核以外的任何依赖项。在这些情况下,可以使用特殊的FROM: scratch,不添加其他任何内容。这是一个空图片(link)。

关于docker - docker 是否总是需要操作系统作为基本镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59539481/

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