как создать изображение Docker Centos, которое будет работать только на Centos - PullRequest
0 голосов
/ 03 ноября 2018

Я новичок в докере и все еще пытаюсь выучить слухи. На моей машине Centos я создал тестовый образ, который будет включать в себя исполняемый файл на C-языке. Исходя из моего понимания докера, я планировал и ожидал, что образ будет работать только на машинах Centos. Вот мой файл докера:

FROM centos:7
WORKDIR /opt/MYAPPS
COPY my_hello .
CMD my_hello

Изображение создается и работает нормально на созданной мной машине Centos. Затем я поместил это изображение в репозиторий и перенес его на другую машину Centos, и он также работает правильно. Пока все хорошо.

Как я уже говорил, я ожидал, что это изображение будет ограничено сентосами. Чтобы доказать это, я попытался перенести его на другие операционные системы, мою Ubuntu и мои окна. К моему удивлению, это сработало на обоих. Очевидно, я что-то упустил. Либо я не понимаю концепцию докера, либо я использую неправильное изображение «ОТ».

1 Ответ

0 голосов
/ 03 ноября 2018

Как я уже говорил, я ожидал, что это изображение будет ограничено сентосами.

Нет: то, что вы вставляете в образ, это просто то, какие зависимости для запуска исполняемого файла, но, в конце концов, все разрешается системными вызовами.

Это означает, что ваш образ ограничен ядром хост-машины, поскольку запущенный процесс выполняет системный вызов указанного ядра.
(Как показано в « Увлекательный мир системных вызовов Linux »)

https://478h5m1yrfsa3bbe262u7muv-wpengine.netdna-ssl.com/wp-content/uploads/2015/12/image002.png

Пока ядро ​​(в данном случае Linux, даже в Windows, через HyperV) поддерживает ваш системный вызов, ваша программа будет работать на этих хостах.
Подробнее на " Как Docker может запускать дистрибутивы с разными ядрами? ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...