8

我的目标是能够从Atom.io进行远程调试。进入在dlv 调试器中运行的 docker 容器。这是第一个问题:

更新:1。我在 Mac 上运行 Docker 容器,但这不应该影响我在容器中运行的代码签名,对吧?

更新:2。Codesignig主机,没有帮助。

Error:

1. root@...:/go/src/app# go get github.com/derekparker/delve/cmd/dlv

2. root@...:/go/src/app# dlv debug hello.go

could not launch process: fork/exec ./debug: operation not permitted

然后试图

1. root@...:/go/src/app# sudo

2. bash: sudo: command not found
4

4 回答 4

5

根据Delve 问题 #515

Docker 具有安全设置,默认情况下在容器中阻止 ptrace(2) 操作。启动时将 --security-opt seccomp:unconfined 传递给 docker run。

*在官方 docker 错误跟踪器中对此进行确认https://github.com/docker/docker/issues/21051

于 2017-02-24T14:15:48.517 回答
3

如果您使用--privileged. 我试图弄清楚是否有更细粒度的功能但失败了。

此外,我刚刚找到了https://github.com/steeve/homebrew-delve,这应该会使 OSX 上的事情变得更容易。

于 2016-04-22T14:49:07.453 回答
2

Docker 具有防止 ptrace(2) 的安全设置

看看我是怎么修的。

如果使用 docker-compose 文件来运行容器,则附加seccomp:unconfined到服务部分,如下所示

api: 
  security_opt:
    - seccomp:unconfined

如果使用 docker run ...passingseccomp:unconfined也可以

于 2017-10-01T22:39:29.407 回答
0

将 Docker 容器作为命令运行:

docker run -itd -p 2028:22 -p 2345:2345 --dns=10.236.8.8 --privileged=true --name=golang  centos7-golang  /usr/bin/supervisord

它对我有用~

于 2019-01-31T08:40:28.387 回答