Herhangi bir docker görüntüsü için OS dağıtım adını belirlemem gerekiyor. ubuntu etiketleyebilirim: en sonimage1: en son, ancak image1'in dağıtım bilgilerini edinebilmem gerekir: en son başlatıldığında., bir docker görüntüsünün OS dağılımını belirler
$ 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')
$
Ancak bu görüntü içinde python2 veya python3 olup olmadığını bir bağımlılığı vardır: Bunu başarmak için
, aşağıda OS sürümü belirlemek için komut söz kullandı. Ubuntu için başarısız: 12.04 ve orada python2 kullanmam gerekiyor.$ 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. Belirli bir görüntüde hangi python versiyonunun olduğunu bilmeden aynı şeyi elde edebilmemin bir yolu var mı?
NOT: Amaç, bu görüntüyü oluşturmak için kullanılan temel resmin hangisi olduğunu belirlemektir. Bu resmi oluşturmak için kullanılan Dockerfile erişimim yok.
Q2. Giriş noktasını kullanmanın başka bir yaklaşımı var. Dockerfile'ı kullanarak mevcut görüntüden ayrı bir görüntü oluşturabilirim. Ya da, kapsayıcıyı oluştururken cmdline olarak giriş noktasını belirtebilirim ancak kapsayıcıda erişilebilir olması için komut dosyasına ihtiyacım var. Cmdline kullanırken paylaşılan depolamaya ihtiyacım olabileceğini tahmin ediyorum, bunu başarmanın daha iyi bir yolu var mı? Herhangi bir işaretçi gerçekten yardımcı olacaktır.
Teşekkürler.
Sen Debian/Ubuntu için/etc/issue dosyasını kullanabilirsiniz
"uname -a" Bana bu veriyor : Linux 95e5ae04dbbc 4.2.0-27-jenerik # 32-Ubuntu SMP Cum Jan 22 04:49:08 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux. Ubuntu14.04 veya fedora veya ubuntu15.10 olup olmadığını söyleyemem. – Rahul
Sys kullanmak için bile, hangi python sürümünü kullanacağımı bilmem gerekir. Sorunun kendisi, hangi sürümü kullanacağımı belirleyebileceğim. :) – Rahul
Sorunuzu yanlış bir şekilde okudum. Bu yüzden yorumlarımı sildim. Özür. :) – idjaw