Docker会杀死FHS吗?
我看到很多Docker映像忽略了文件系统层次结构标准(FHS)。大多数示例(一些官方)忽略了FHS。例如,有些人可能选择将二进制文件放在Docker会杀死FHS吗?,docker,fhs,Docker,Fhs,我看到很多Docker映像忽略了文件系统层次结构标准(FHS)。大多数示例(一些官方)忽略了FHS。例如,有些人可能选择将二进制文件放在/app中,将数据放在/data中,在根目录中有一个入口点.sh,等等 FHS的目的是提高分布和应用的互操作性。Dockerfile的FHS合规性允许将Linux基本映像更改为其他版本或发行版。例如,解决分发包的错误修复可能需要这样的升级 编写不符合FHS的Dockerfiles似乎是常见的做法。这会使维护变得更复杂吗?我真的不相信这个问题适合这个网站——它非常
/app
中,将数据放在/data
中,在根目录中有一个入口点.sh
,等等
FHS的目的是提高分布和应用的互操作性。Dockerfile的FHS合规性允许将Linux基本映像更改为其他版本或发行版。例如,解决分发包的错误修复可能需要这样的升级
编写不符合FHS的Dockerfiles似乎是常见的做法。这会使维护变得更复杂吗?我真的不相信这个问题适合这个网站——它非常广泛,答案可能是基于观点的,并且没有可证明正确的标准答案存在或可能存在。然而,在我看来,我可以说一点为什么这可能并不重要。容器实际上是用来为应用程序提供自己的私有名称空间的。在这个名称空间中,它所做的事情并不特别重要,因为那里应该只有专门支持某个应用程序的内容……现在,如果您正在为发行版构建软件包,那么遵循FHS仍然很重要,因为您的软件包需要很好地相互配合,为了更好地使用第三方软件包,不要让您的用户感到惊讶,等等。即使您的用户将使用您的OS发行版来构建容器,这也是正确的,因为他们将在该发行版中安装其他软件,任何/所有这些都可能会对什么构成合理的默认路径做出假设,但是,如果“你”不是发行版打包者,而是开发人员在构建一个容器,FHS只会给你一堆你可以依赖操作系统提供的不变量,这并不限制你作为应用程序开发人员应该做什么,因为您的用户不关心容器中的内容,他们只关心应用程序的文档化接口:它在端口Y上提供服务X,并为数据装载卷Z。二进制文件在容器中的位置是完全不相关的。如果Dockerfile以ubuntu中的
开头,那么构建容器的开发人员可能会遇到问题?