容器内的 Docker 袜子权限问题

我确实有一个容器试图访问docker API(使用go docker lib)。这样做时,我收到以下错误:

"Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http:///var/run/docker.sock/v1.38/containers/json?filters={"name":{"test":true},"status":{"exited":true,"running":true}}&limit=0: dial unix /var/run/docker.sock: connect: permission denied"

好的,所以我正在尝试向容器用户添加访问该文件的权限,但没有成功。作为临时旁路,我只是将666添加到/var/run/docker.sock文件中。但仍然没有成功。

在将API称为文件权限之前,我确实在打印,并且对于每个人(所有者,组,其他)来说,它都是正确的RW。但是,我仍然得到同样的错误。

如果我尝试调用 docker API 我自己,或者在脚本中调用它确实有效。只有当从其他控制器内部调用时,我才会收到错误。

请注意,相同的代码在其他计算机上确实可以完美地工作。

我在 Fedora 33 Docker 19.03.13 go1.15.8 上

关于看什么的任何建议?


30秒到达战场
浏览 113回答 1
1回答

动漫人物

问题来自 Fedora 正在使用的 SELinux 保护。通常在挂载目录时,添加选项“z”将允许Docker自动重新标记目录。但对于域套接字,这是不允许的。似乎最好的选择是使用以下选项运行docker--security-opt label=type:container_runtime_t在这里可以看到更多。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go