Почему контейнер CentOS Docker говорит, что это Ubuntu?

Для этого можно определить пользовательскую функцию.

# func def.
isInt() {
    case ${1-} in '' | *[!0-9]* ) return 1 ;; esac
    return 0
}

# now use it as:
if isInt "$num1"; then
   echo "$num1 is a valid integer"
else
   echo "$num1 is not an integer"
fi

Обратите внимание, что caseиспользует подстановочные знаки, а не регулярные выражения для своей работы.

0
05.04.2019, 21:30
2 ответа

cat /proc/version показывает версию ядра. Поскольку контейнеры работают на том же ядре, что и хост. Это то же ядро, что и хост.

cat /etc/*-releaseпоказывает выпуск дистрибутива. Это версия ОС без ядра.

Контейнер — это не виртуализация, а изолированная система, работающая непосредственно на ядре Linux. Он использует пробелы имени ядра -и cgroups. Пространства имени -позволяют разделять сети, идентификаторы процессов, точки монтирования, пользователей, имя хоста, связь между процессами --. cgroups позволяет ограничивать ресурсы.

5
28.01.2020, 02:14
  1. Я не могу найти в предоставленном выводе информацию о ядре CentOS, только выпуск версии (7.6.1810 );
  2. Да, контейнер использует ядро ​​хост-компьютера.

Обновление :Проверьте этот ответ.

3
28.01.2020, 02:14

Теги

Похожие вопросы