Назад | Перейти на главную страницу

Какая ОС работает в моем контейнере Docker?

В большинстве случаев, используя один из этих двух, я могу сказать, какая ОС работает в моем контейнере Docker (alpine, centOS и т. Д.).

Но на этот раз я не могу сказать:

bash-4.2$ uname -a       
Linux 6fe5c6d1451c 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

bash-4.2$ more /etc/issue
\S
Kernel \r on an \m

Есть ли способ получить текстовую версию ОС, на которой он работает?

Я люблю использовать Screenfetch. Вы можете попробовать это.

Если вы посмотрите в код, вы увидите, как он определяет распределение:

  • lsb_release -sirc
  • cat /etc/os-release

И для CentOS тоже:

  • cat /etc/issue

uname сообщит вам о работающем ядре, которое является ядром ОС хоста (контейнеры, в отличие от виртуальных машин, используют одно и то же ядро).

Чтобы идентифицировать базовый образ контейнера, нет гарантированного решения изнутри контейнера. Вы можете поискать указатели от основных поставщиков, таких как Janosch (/ etc / os-release для большинства поставщиков, таких как Debian, CentOS и Alpine, или / etc / lsb-release для Ubuntu). Вы также можете проверить инструменты управления пакетами, если они установлены (/ etc / apk, / etc / apt, / etc / yum).

Вне контейнера вы можете проверить изображение и отследить слои, чтобы увидеть, откуда изображение, но это касается определения контрольных сумм sha256. Лучший способ - просмотреть файл Dockerfile, который использовался для создания образа.