fis*_*oes 9 docker docker-swarm
我有一个应用程序在 Linux 上的 docker swarm 中运行。我需要附加调试器 (gdb),但出现错误:
ptrace: Operation not permitted.
Run Code Online (Sandbox Code Playgroud)
研究使我使用“cap_add”,但这不适用于游泳应用
https://docs.docker.com/compose/compose-file/#cap_add-cap_drop
cap_add, cap_drop
添加或删除容器功能。有关完整列表,请参阅 man 7 功能。
cap_add: - 所有
cap_drop: - NET_ADMIN - SYS_ADMIN
Run Code Online (Sandbox Code Playgroud)Note: These options are ignored when deploying a stack in swarm mode with a (version 3) Compose file.
我意识到我可以使用 cap_add 手动启动容器并像这样调试,但我更喜欢调试而不必先停止应用程序。
有没有办法向集群部署的应用程序添加功能(特别是 SYS_PTRACE),以便调试器可以工作?
20.10.0 版本 (2020-12-08) 添加了对此的支持,因此您只需将“cap_add”部分添加到堆栈文件中即可。
cap_add:
- SYS_PTRACE
Run Code Online (Sandbox Code Playgroud)
目前仅在发行说明和问题跟踪器中提到此功能。
添加对堆栈/服务命令的功能支持 docker/cli#2687 docker/cli#2709 moby/moby#39173 moby/moby#41249
在撰写本文时,最新的 compose 文件文档适用于版本 19.03,并且仍然表示 swarm 不支持 cap_add/cap_drop。
| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |