【问题标题】:Errno 13 while running docker-compose up运行 docker-compose up 时出现 Errno 13
【发布时间】:2019-04-20 00:39:06
【问题描述】:

我正在使用 django 构建一个应用程序,我想将 docker 添加到这个项目中。

我正在尝试运行

sudo docker-compose up

这给了我这个输出:

ERROR: .IOError: [Errno 13] Permission denied: './docker-compose.yml'

我使用 GUI 检查了权限。一切都很好。

我正在尝试从已安装的驱动器运行我的应用程序。我还在其他驱动器上进行了测试。唯一没有出现此问题的驱动器是我运行 Ubuntu 18.04 的主驱动器。

期待一些答案

【问题讨论】:

  • 你为什么用 sudo 运行它?
  • 它修复了一些问题。不幸的是,我无法重现它。

标签: python django docker ubuntu docker-compose


【解决方案1】:

使用 apparmor 重新配置工具添加运行 docker-compose.yml 的目录:

$ sudo dpkg-reconfigure apparmor

【讨论】:

  • 之后必须运行 sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap.docker.compose 才能重新加载此快照的 apparomr 配置文件
  • 它没有帮助我,让我们试试上面的答案:stackoverflow.com/a/55305211/529442
【解决方案2】:

我找到了一个可行的解决方案。

不要使用 snap 安装,而是这样做(测试 Ubuntu 20.04)

apt install docker.io docker-compose

【讨论】:

  • 谢谢!除了你的,其他解决方案都不适合我!
  • 是的,它也适用于我! :)
【解决方案3】:

您需要更新您的 AppArmor 配置:

Snap Docker 由 AppArmor 严格控制。

要诊断是否确实如此,请在触发错误后检查系统日志的最后几行:

dmesg | grep docker-compose

您应该会看到一个被拒绝的 snap.docker:

内核:[] 审计:类型=1400 审计(....): apparmor="DENIED" 操作="exec" profile="snap.docker.dockerd" name="/bin/kmod" pid=7213 comm="exe" requested_mask="x" denied_mask="x" fsuid=0 ouid=0

要纠正这个问题,只需转到 apparmor config 的可调参数:

cd /etc/apparmor.d/tunables

并在“home”文件中编辑 HOMEDIRS 变量,例如来自:

@{HOMEDIRS}=/home/ 

到

@{HOMEDIRS}=/home/ /media/aUser/Linux/

希望有帮助。

【讨论】:

  • 这对我有用,谢谢。出于某种原因,在另一个答案中运行 sudo dpkg-reconfigure apparmor 不起作用。
猜你喜欢
  • 2021-06-13
  • 2023-03-09
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
  • 2018-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多