Ich muss den OS-Verteilungsnamen für jedes Docker-Image ermitteln. Ich kann ubuntu benennen: späteste als image1: späteste, aber ich sollte in der Lage sein, die Verteilungsinformation von image1 zu erhalten: spätestes, wenn es gestartet wird.bestimmen Betriebssystemverteilung eines Docker-Abbilds
Um dies zu erreichen, habe ich den folgenden Befehl erwähnte die OS-Version zu bestimmen:
$ 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')
$
Dies ist jedoch auf eine Abhängigkeit hat, ob das Bild python2 oder python3 in ihm hat. Es schlägt für ubuntu: 12.04 und ich muss python2 dort verwenden.
$ 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. Gibt es eine Möglichkeit, dasselbe zu erreichen, ohne zu wissen, welche Version von Python in einem bestimmten Bild vorhanden ist?
HINWEIS: Das Ziel besteht darin, zu bestimmen, welches Basisbild für dieses Bild verwendet wurde. Ich habe keinen Zugriff auf die Docker-Datei, mit der dieses Image erstellt wurde.
Q2. Es gibt einen anderen Ansatz, den Einstiegspunkt zu verwenden. Ich kann ein separates Bild aus dem aktuellen Bild mit Dockerfile erstellen. Oder ich kann beim Erstellen eines Containers den Eingabepunkt in cmdline angeben, aber das Skript muss im Container verfügbar sein. Ich nehme an, dass ich bei der Verwendung von cmdline einen gemeinsamen Speicher benötigen könnte, gibt es einen besseren Weg, dies zu erreichen? Alle Hinweise wären sehr hilfreich.
Danke.
"uname -a" gibt mir diese : Linux 95e5ae04dbbc 4.2.0-27-generische # 32-Ubuntu SMP Fr Jan 22 04:49:08 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux. Ich kann nicht sagen, ob es ubuntu14.04 oder fedora oder ubuntu15.10 ist. – Rahul
Auch für die Verwendung von sys muss ich wissen, welche Version von Python verwendet werden soll. Die Frage selbst ist, wie ich bestimmen kann, welche Version verwendet werden soll. :) – Rahul
Ich habe deine Frage falsch gelesen. Deshalb habe ich meine Kommentare gelöscht. Entschuldigung. :) – idjaw