web-dev-qa-db-ja.com

dockerコンテナのgdbは「ptrace:操作は許可されていません」を返します。

確認しました/proc/sys/kernel/yama/ptrace_scopeコンテナ内およびホスト上-両方とも値をゼロとして報告しますが、pidに接続するとgdbが報告します

Reading symbols from /opt/my-web-proxy/bin/my-web-proxy...done.
Attaching to program: /opt/my-web-proxy/bin/my-web-proxy, process 1
ptrace: Operation not permitted.

また、特権フラグを使用してコンテナに接続しようとしました

docker exec --privileged -it mywebproxy_my-proxy_1 /bin/bash

ホストOSはFedora 25で、リポジトリからのdockerとコンテナーは公式のcentos6.8です

26
Adrian

私は答えを発見しました-コンテナはstrace機能で起動する必要があります

これをdocker-compose.ymlファイルに追加すると、GDBが機能します

cap_add:
    - SYS_PTRACE

または、--cap-add=SYS_PTRACEを使用してdockerコマンドラインで渡すこともできます

44
Adrian