GNU/Linux >> Tutoriels Linux >  >> Linux

gdb n'atteint aucun point d'arrêt lorsque je l'exécute depuis l'intérieur du conteneur Docker

mise à jour 2020.01.04 :utilisez la réponse donnée par Kevin W Matthews --- c'est mieux car elle accorde les capacités individuelles nécessaires sans élever l'ensemble du conteneur.

tldr ; utiliser

docker run --privileged

Plus long :j'avais des problèmes avec gdb dans docker --- il tentait (et échouait) de désactiver la randomisation de la disposition de l'espace d'adressage --- mais uniquement sur docker-machine , pas sur mon hôte Linux natif.

Lorsque gdb ne parvenait pas à désactiver ASLR, tous mes points d'arrêt étaient ignorés. Utilisation du --privileged flag a résolu mon problème. Votre kilométrage peut varier.


Plutôt que d'élever tout le conteneur, j'ai pu utiliser l'option

--security-opt seccomp=unconfined

pour résoudre les problèmes de randomisation de l'espace d'adressage.

Certains recommandent également d'activer le ptrace capacité avec

--cap-add=SYS_PTRACE

mais cela ne semble pas avoir d'effet sur moi.

Voici les mêmes paramètres pour Docker compose :

security_opt:
  - seccomp:unconfined
cap_add:
  - SYS_PTRACE

Les détails sont tirés de cet article Stack Overflow.


Linux
  1. Comment créer une image personnalisée à partir d'un conteneur Docker

  2. Docker peut-il s'exécuter dans un conteneur Linux ?

  3. Comment envoyer un signal au programme exécuté dans un conteneur Docker ?

  4. Que contient une image/un conteneur Docker ?

  5. Comment ajouter des utilisateurs au conteneur Docker ?

Comment exécuter un programme dans un conteneur Docker ?

Exécution de docker sur Ubuntu :le volume hôte monté n'est pas accessible en écriture à partir du conteneur

Le volume Docker ne monte aucun fichier

Pourquoi le conteneur Docker invite-t-il l'autorisation refusée ?

Sous Linux, à partir de quand le temps de disponibilité commence-t-il à compter ?

Que signifie exactement le périphérique d'entrée n'est pas un TTY dans la sortie d'exécution du docker ?