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

Хост-система - это Fedora 25 с докере из их репозиториев, а контейнер - официальный centos6.8

Ответ 1

Я обнаружил ответ - контейнер нужно запустить с помощью возможностей strace

Добавление этого файла в файл docker-compose.yml позволяет GDB работать

cap_add:
    - SYS_PTRACE

Или он также может быть передан в командной строке docker с помощью --cap-add=SYS_PTRACE