为了账号安全,请及时绑定邮箱和手机立即绑定

容器内的 Docker 袜子权限问题

容器内的 Docker 袜子权限问题

Go
30秒到达战场 2022-08-15 16:58:45
我确实有一个容器试图访问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 上关于看什么的任何建议?
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

问题来自 Fedora 正在使用的 SELinux 保护。通常在挂载目录时,添加选项“z”将允许Docker自动重新标记目录。但对于域套接字,这是不允许的。似乎最好的选择是使用以下选项运行docker

--security-opt label=type:container_runtime_t

在这里可以看到更多。


查看完整回答
反对 回复 2022-08-15
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信