
確認しようUbuntu用のDockerコンテナイメージファイルを選択するときにファイル間で一致する必要があるものは何ですか?
Lubuntuでは、CentOSコンテナをCentOSと呼びます。
$ sudo docker run centos bash -c "cat /etc/*-release "
CentOS Linux release 7.6.1810 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.6.1810 (Core)
CentOS Linux release 7.6.1810 (Core)
しかし、ホストシステムと同じUbuntuと言います。
$ sudo docker run centos bash -c "cat /proc/version"
Linux version 4.15.0-46-generic (buildd@lgw01-amd64-038) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019
$ cat /proc/version
Linux version 4.15.0-46-generic (buildd@lgw01-amd64-038) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019
これら2つのコマンドがOSディストリビューションとカーネルバージョンでなぜ異なるのか疑問に思います。
コンテナはホストと同じカーネルを共有しますか?それでは、カーネルのバージョンは同じでなければなりませんか?Ubuntu用のDockerコンテナイメージファイルを選択するときにファイル間で一致する必要があるものは何ですか?「配布版やカーネルのバージョンを一致させる必要はありません」と言います。
答え1
cat /proc/version
カーネルのバージョンを表示します。コンテナはホストと同じカーネルで実行されるためです。ホストシステムと同じコアを持ちます。
cat /etc/*-release
リリースバージョンを表示します。カーネルを引いたOSバージョンです。
コンテナは仮想化ではなく、Linuxカーネルで直接実行される孤立したシステムです。カーネルの名前空間とcgroupを使用してください。名前空間は、別々のネットワーク、プロセスID、マウントポイント、ユーザー、ホスト名、およびプロセス間通信を許可します。 cgroup はリソース制限を受け入れます。
答え2
- 提供された出力にCentOSカーネル情報が見つからず、バージョンリリース(7.6.1810)のみが見つかります。
- はい、コンテナはホストのカーネルを共有します。
アップデートの確認これ答え。