gpt4 book ai didi

java - docker 容器应该有操作系统发行版吗?

转载 作者:行者123 更新时间:2023-11-30 10:04:15 25 4
gpt4 key购买 nike

我是 docker 的新手,正在学习许多教程。我开始知道我们可以在 docker 容器中包含任何东西(数据库、服务器等)。然而,我在很多教程中看到docker镜像文件有一个“FROM some OS distro”(我知道这个发行版不是一个完整的操作系统,而是提供了发行版的实用程序,进程)。我的问题是:

容器应该总是有操作系统发行版吗?

如果是,为什么? (其他组件(例如:java vm)不能在内核上运行吗?),

如果否:后果是什么?或者什么是一般的最佳实践?
(我是Java出身)

最佳答案

您定义的每个 docker 镜像都必须有一个 FROM 子句,因为它需要基于另一个镜像。您可以创建自己的基本镜像,但我认为您不需要它。图像只不过是二进制文件的集合,您可以在从图像创建的容器中使用这些二进制文件。 docker hub 上有很多可用的图像,最佳做法是使图像尽可能小。因此我会推荐基于 alpine 的基础镜像。

https://hub.docker.com/_/openjdk

如果你真的需要一个自己的基础镜像,请看这里

https://docs.docker.com/develop/develop-images/baseimages/

还有评论的链接 stackoverflow 文章。

docker 容器的进程总是使用 docker 主机的内核,因此 docker 镜像需要与运行容器的主机的内核兼容。 docker conttainer 只不过是在主机上运行的一个隔离进程,没有特殊的运行时。如果一个 java 进程在容器中运行,它实际上在主机上运行,​​当您在 docker 主机上列出主机进程时,您可以看到它。

关于java - docker 容器应该有操作系统发行版吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55990169/

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