Мне нужно определить имя дистрибутива ОС для любого изображения докеров. Я могу пометить ubuntu: последние как image1: последние, но я должен получить информацию о распространении image1: самый последний, когда он запущен.определить распределение ОС на докере
Для достижения этой цели я использовал нижеуказанным команду, чтобы определить версию ОС:
$ docker tag ubuntu image1
$
$ docker run -it image1 /bin/sh -c "echo import platform > test.py; echo print\(platform.dist\(\)\) >> test.py; python3 test.py"
('Ubuntu', '14.04', 'trusty')
$
Однако, это имеет зависимость от того, имеет ли изображение python2 или python3 в нем. Это не удается для ubuntu: 12.04, и мне нужно использовать python2.
$ docker run -it ubuntu /bin/sh -c "echo import platform > test.py; echo print\(platform.dist\(\)\) >> test.py; python3 test.py"
('Ubuntu', '14.04', 'trusty')
$
$ docker run -it ubuntu:12.04 /bin/sh -c "echo import platform > test.py; echo print\(platform.dist\(\)\) >> test.py; python3 test.py"
/bin/sh: 1: python3: not found
$
$ docker run -it ubuntu:12.04 /bin/sh -c "echo import platform > test.py; echo print\(platform.dist\(\)\) >> test.py; python2 test.py"
('Ubuntu', '12.04', 'precise')
$
Q1. Есть ли способ, которым я могу достичь того же, не зная, какая версия python существует в определенном изображении?
ПРИМЕЧАНИЕ. Цель состоит в том, чтобы определить, какое изображение было использовано для создания этого изображения. У меня нет доступа к файлу Docker, который использовался для создания этого изображения.
Q2. Существует другой подход использования точки входа. Я могу создать отдельное изображение из текущего изображения с помощью Dockerfile. Или я могу указать точку входа в cmdline при создании контейнера, но мне нужен сценарий для доступа в контейнер. Я предполагаю, что мне может понадобиться совместное хранилище при использовании cmdline, есть ли лучший способ достичь этого? Любые указатели были бы действительно полезны.
Спасибо.
«uname -a» дает мне это : Linux 95e5ae04dbbc 4.2.0-27-generiC# 32-Ubuntu SMP Пт Янв 22 04:49:08 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux. Я не могу сказать, есть ли его ubuntu14.04 или fedora или ubuntu15.10. – Rahul
Даже для использования sys мне нужно знать, какую версию python использовать. Сам вопрос заключается в том, как я могу определить, какую версию использовать. :) – Rahul
Я все время читал ваш вопрос. Вот почему я удалил свои комментарии. Извиняюсь. :) – idjaw