このページでは、システムコールのトレースを行い、コンテナ サンドボックスの制限を診断する方法について説明します。strace
や dtruss
などのツールでシステムコールのトレースを行った経験のある方を対象としています。システムコールのトレースに精通されていない場合は、問題の詳細を Google Cloud サポートにお問い合わせいただき、Google Cloud サポートチームからシステムコールをトレースすることに対して招待されてから作業を進めるようにしてください。
コンテナ サンドボックスは、Linux でサポートされているすべてのシステムコールに対応しているわけではありません。strace
(Linux)や dtruss
(macOS)などのシステムコール トレースツールを使用すると、アプリケーションから行われたシステムコールを調査し、サンドボックスでサポートされていないシステムコールを特定できます。
strace
を使用する(Linux)
Linux でコードを実行する場合は、strace
をインストールして有効にします。
sudo apt-get install strace
strace を有効にしてアプリケーションを実行するには、通常の呼び出しの前に strace -f
を付けます。-f
を指定することで、すべての子スレッドがトレースされます。たとえば、通常、./main
を使用してアプリケーションを呼び出す場合は、/usr/bin/strace -f ./main
を呼び出して strace で実行できます。
strace から返されたログを表示する
strace から返されるシステムログは次のようになります。
dtruss
を使用する(macOS)
macOS でコードを実行する場合は、次のように、コマンドラインからの通常の呼び出しの前に dtruss -a
を付けて dtrusss
を使用します。
sudo dtruss -a ./main
ドキュメントについては、man dtruss
コマンドを使用するか、dtrace/drusss
のウェブサイトをご覧ください。