Dockerコンテナで実行されているOSはどれですか?


20

ほとんどの場合、これら2つのいずれかを使用して、Dockerコンテナで実行されているOS(alpine、centOSなど)を確認できます。

しかし、今回はわかりません。

bash-4.2$ uname -a       
Linux 6fe5c6d1451c 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

bash-4.2$ more /etc/issue
\S
Kernel \r on an \m

実行中のOSのテキストバージョンを取得する方法はありますか?

回答:


30

Screenfetchを使用するのが好きです。あなたはそれを試してみたいかもしれません。

コードを見ると、それがどのように分布を決定するかを見ることができます:

  • lsb_release -sirc
  • cat /etc/os-release

また、CentOSもカバーするには:

  • cat /etc/issue

1
「/ etc / os-release」は確かに優れたソースですが、一部のcentOSには存在しません。決定するショットが1つしかない場合、「ls / etc / * release」と言います。しかし、文字列の方法が必要な場合は、すべてのケースをカバーするために「cat / etc / os-release」と「cat / etc / issue」の両方が必要です。二人ともありがとう。
ボブヨプレイ

ええ、彼らは両方とも仕事cat /etc/issueをしているcat /etc/alpine-release
ジュリアン

7

uname 実行中のカーネル、つまりホストOSカーネル(VMとは異なり、同じカーネルを共有するコンテナー)がわかります。

コンテナのベースイメージを識別するために、コンテナ内からの保証されたソリューションはありません。Janoschが提供する主要なベンダー(Debian、CentOS、Alpineなどのほとんどのベンダーの場合は/ etc / os-release、Ubuntuの場合は/ etc / lsb-release)からポインターを探すことができます。パッケージ管理ツール(/ etc / apk、/ etc / apt、/ etc / yum)がインストールされている場合は確認することもできます。

コンテナの外側では、画像を調べてレイヤーを追跡し、画像の出所を確認できますが、sha256チェックサムを見つけることになります。最良の方法は、イメージのビルドに使用されたDockerfileを確認することです。


これを最新のUbuntuイメージを使用してWindowsで実行すると、今日の時点で、unameただ戻ってきてLinuxuname -aすぐに戻ってきますLinux 89e9cd67fc7a 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
David Culbreth

1
Linuxkitは埋め込みDocker VMです。これは、Windows用のDockerで実行されるコンテナを備えたホストOSです。
–BMitch

「uname」は、コンテナではなく、基礎となるホストに関する詳細を提供します(コンテナ内で実行した場合でも)。
Trondh

@Trondh私はそれが私が言ったことだと信じています。答えには修正が必要なものがありますか?
BMitch
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.