使用 ubuntu:16.04 运行 docker 容器实际上运行的是 ubuntu 18.04

use*_*069 -2 linux ubuntu docker dockerfile

我试图使用以下命令运行带有 ubuntu:16.04(在 ubuntu 18.04 机器上)的 docker 容器:

docker run -i -t --name ubuntu ubuntu:16.04 /bin/bash
Run Code Online (Sandbox Code Playgroud)

运行此命令会将我附加到一个容器。但是当我查看内核信息时uname -a,显示当前内核是Ubuntu 18.04。以下是我得到的结果:

Linux 1ac6c3456e2a 5.3.0-40-generic #32~18.04.1-Ubuntu SMP Mon Feb 3 14:05:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

可能是什么原因?

Kap*_*wal 6

Docker 使用主机操作系统内核,容器内部没有自定义或附加内核。在一台机器上运行的所有容器都共享这个“主机”内核。

请阅读本文了解更多详情。

所以#32~18.04.1-Ubuntu SMP Mon Feb 3 14:05:59 UTC 2020中的输出uname -a实际上是主机的内核版本。

要验证您运行的是 Ubuntu 16:04,请运行cat /etc/os-release. 它将为您提供有关操作系统的详细信息。