ドッカー画像のOS配布名を決定する必要があります。 ubuntu:とimage1:latestとタグ付けできますが、起動時にimage1:latestの配信情報を取得できるはずです。これを達成するためのドッカー画像のOS配布を決定する
は、私は以下のOSのバージョンを確認するためのコマンドを挙げ使用:
$ 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のバージョンを知ることなく、同じことを達成できる方法はありますか?
注:目的は、この画像を作成するために使用されたベース画像がどれかを判断することです。この画像を作成するために使用されたDockerfileにアクセスすることはできません。
Q2。エントリポイントを使用する別の方法があります。 Dockerfileを使用して現在の画像とは別の画像を作成できます。または、コンテナを作成するときにcmdlineにentrypointを指定できますが、コンテナ内でスクリプトにアクセスできるようにする必要があります。私はcmdlineを使うときに共有ストレージが必要かもしれないと推測していますが、これを実現する良い方法はありますか?どんなポインタであれ、本当に役に立ちます。
ありがとうございました。
"は、uname -aは、" 私にこれを提供します:Linux 95e5ae04dbbc 4.2.0-27-generic#32-Ubuntu SMP Fri Jan 22 04:49:08 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux。私はそのubuntu14.04かfedoraかubuntu15.10かどうかは言えません。 – Rahul
sysを使ったとしても、使用するPythonのバージョンを知る必要があります。質問自体は、どのバージョンを使用するかを決定する方法です。 :) – Rahul
私は間違った方法であなたの質問を読んで続けた。それが私のコメントを削除した理由です。謝罪。 :) – idjaw