新しい ubuntu 16.04 システムでは、新しい systemd &lxc 2.0
sudo grep -qa container=lxc /proc/1/environ
最も信頼できる方法は、 /proc/1/cgroup をチェックすることです . init プロセスのコントロール グループと、そうでない場合は 教えてくれます。 コンテナでは / になります すべての階層に。 中にいるとき コンテナの場合、アンカー ポイントの名前が表示されます。 LXC/Docker コンテナーでは、/lxc/<containerid> のようになります。 または /docker/<containerid>
Docker は .dockerenv を作成します コンテナ内のディレクトリ ツリーのルートにあるファイル。これは ls -la /.dockerenv を実行することで確認できます コンテナの起動時に作成されることを示します。
このスクリプトを実行して確認できます:
#!/bin/bash
if [ -f /.dockerenv ]; then
echo "I'm inside matrix ;(";
else
echo "I'm living in real world!";
fi
詳細: Ubuntu には実際に bash スクリプトがあります:/bin/running-in-container 呼び出されたコンテナのタイプを返すことができます。役立つかもしれませんが、他の主要なディストリビューションについては知りません.