Devo determinare il nome di distribuzione del sistema operativo per qualsiasi immagine di finestra mobile. Posso taggare ubuntu: latest come image1: latest, ma dovrei essere in grado di ottenere le informazioni di distribuzione di image1: latest quando viene lanciato.determina la distribuzione del sistema operativo di un'immagine mobile Immagine
Per il raggiungimento di questo, ho usato il comando di seguito menzionato per determinare la versione del sistema operativo:
$ 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')
$
Tuttavia, questo ha una dipendenza se l'immagine ha python2 o python3 in esso. Fallisce per ubuntu: 12.04 e ho bisogno di usare python2 lì.
$ 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. C'è un modo per ottenere lo stesso risultato senza sapere quale versione di Python è presente in una particolare immagine?
NOTA: l'obiettivo è determinare quale era l'immagine di base utilizzata per costruire questa immagine. Non ho accesso al Dockerfile usato per costruire questa immagine.
Q2. C'è un altro approccio dell'uso di un punto di accesso. Posso creare un'immagine separata dall'immagine corrente usando Dockerfile. Oppure, posso specificare il punto di accesso in cmdline durante la creazione del contenitore, ma ho bisogno che lo script sia accessibile all'interno del contenitore. Immagino che potrei aver bisogno di storage condiviso quando uso cmdline, c'è un modo migliore per raggiungere questo obiettivo? Qualsiasi suggerimento sarebbe davvero utile.
Grazie.
"uname -a" mi dà questo : Linux 95e5ae04dbbc 4.2.0-27-generiC# 32-Ubuntu SMP ven 22 gennaio 04:49:08 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux. Non posso dire se la sua ubuntu14.04 o fedora o ubuntu 15.10. – Rahul
Anche per usare sys, ho bisogno di sapere quale versione di python usare. La domanda in sé è come posso determinare quale versione utilizzare. :) – Rahul
Continuavo a leggere la tua domanda nel modo sbagliato. Questo è il motivo per cui ho cancellato i miei commenti. Scuse. :) – idjaw