2017-02-03 3 views
10

J'ai vérifié /proc/sys/kernel/yama/ptrace_scope dans le récipient et sur l'hôte - à la fois faire rapport à la valeur zéro, mais lorsqu'il est attaché à un pid gdb rapportsgdb dans le conteneur docker renvoie "ptrace: Operation not allowed."

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. 

J'ai aussi essayé attaché au conteneur avec le drapeau privilégié

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

OS hôte est Fedora 25 avec docker de leurs prises en pension et le conteneur est un centos6.8 officiel

+0

Rien dans la production hôte dmesg? Il pourrait être bloqué par SELinux, vérifiez ici: https://fedoraproject.org/wiki/Features/SELinuxDenyPtrace – odk

+1

ressemble à https://github.com/docker/docker/issues/21051 – user2915097

Répondre

16

J'ai découvert la réponse - le conteneur doit être démarré avec des capacités de strace

Ajouter à mon docker-compose.yml fichier permet GDB de travailler

cap_add: 
    - SYS_PTRACE 

Ou il peut aussi être transmis sur la ligne de commande docker avec --cap-add=SYS_PTRACE