新しい 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
呼び出されたコンテナのタイプを返すことができます。役立つかもしれませんが、他の主要なディストリビューションについては知りません.