为什么Alpine镜像的Docker容器查询/proc/version显示Ubuntu信息?
问题解答:Alpine容器查询/proc/version返回Ubuntu信息的原因
这是Docker的正常运行机制,核心原理是容器共享宿主机的Linux内核,具体解释如下:
- 首先明确两类信息的来源差异:
/etc/alpine-release是Alpine镜像自带的用户态文件,属于容器独立的文件系统内容,记录了Alpine发行版的版本号,所以查询结果符合你使用的镜像预期。/proc是Linux内核提供的虚拟文件系统,所有数据都是内核运行时动态生成的,并不存储在磁盘上,用来暴露内核、进程的运行状态。
- Docker容器本身没有独立的内核,启动时会直接复用宿主机的内核,同时默认将宿主机的
/proc目录挂载到容器内部。你在容器内读取/proc/version本质是直接读取宿主机的内核版本信息,你看到的Ubuntu相关内容,就是你运行Docker的宿主机的操作系统内核标识。
你可以直接在宿主机执行more /proc/version验证,得到的结果会和容器内执行的结果完全一致。
内容的提问来源于stack exchange,提问作者Jayadevan
相关产品推荐
相关产品推荐

