GNU/Linux >> Linux の 問題 >  >> Linux

プロセスが lxc/Docker 内で実行されているかどうかを判断する方法は?

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


Linux
  1. docker は Linux コンテナー内で実行できますか?

  2. Docker イメージ/コンテナの中身は?

  3. docker コンテナ内で cron ジョブを実行する方法

  1. コンテナ内でのPodmanの使用方法

  2. Lxcコンテナにログインする方法は?

  3. DockerコンテナでMySQLを実行する方法

  1. DockerコンテナにSSHで接続する方法

  2. DockerコンテナにVimをインストールする方法

  3. Dockerコンテナを終了する方法