GNU/Linux >> Znalost Linux >  >> Linux

gdb nenarazí na žádné body přerušení, když jej spustím z kontejneru Docker

aktualizace 2020.01.04:Použijte odpověď od Kevina W Matthewse --- je to lepší, protože poskytuje potřebné individuální schopnosti bez zvednutí celého kontejneru.

tldr; použití

docker run --privileged

Delší:Měl jsem nějaké problémy s gdb v dockeru ---pokoušel se (a selhal) zakázat randomizaci rozložení adresního prostoru ---ale pouze na docker-machine , ne na mém nativním linuxovém hostiteli.

Když se gdb nepodařilo zakázat ASLR, všechny mé body přerušení budou ignorovány. Pomocí --privileged vlajka vyřešila můj problém. Váš počet najetých kilometrů se může lišit.


Spíše než zvednutí celého kontejneru jsem mohl použít volbu

--security-opt seccomp=unconfined

opravit problémy s randomizací adresního prostoru.

Někteří také doporučují povolit ptrace schopnost s

--cap-add=SYS_PTRACE

ale nezdálo se, že by to pro mě mělo žádný účinek.

Zde jsou stejná nastavení pro Docker compose:

security_opt:
  - seccomp:unconfined
cap_add:
  - SYS_PTRACE

Podrobnosti jsou převzaty z tohoto příspěvku Stack Overflow.


Linux
  1. Jak spustit příkaz uvnitř spuštěného kontejneru Systemd?

  2. Spuštěný docker na Ubuntu:připojený svazek hostitele nelze zapisovat z kontejneru

  3. Docker Volume nepřipojuje žádné soubory

  1. Pipelined Sed nefunguje při nalezeném názvu souboru uvnitř Bash nahrazení příkazu při vyvolání z Find „-exec“?

  2. Proč kontejner dockeru zobrazí výzvu Permission denied?

  3. Co přesně znamená vstupní zařízení, které není TTY, ve výstupu běhu dockeru?

  1. Jak spustit program uvnitř kontejneru Docker?

  2. Jak vytvořit vlastní obrázek z kontejneru Docker

  3. Může docker běžet uvnitř linuxového kontejneru?