运行 docker-compose up 时出现 Errno 13

vex*_*exE 8 python django ubuntu docker docker-compose

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

我正在努力奔跑

sudo docker-compose up
Run Code Online (Sandbox Code Playgroud)

这给了我这个输出:

ERROR: .IOError: [Errno 13] Permission denied: './docker-compose.yml'
Run Code Online (Sandbox Code Playgroud)

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

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

期待一些答案

And*_*ers 11

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

不要使用 snap 安装,而是执行此操作(已测试 Ubuntu 20.04)

apt install docker.io docker-compose
Run Code Online (Sandbox Code Playgroud)


Don*_*lio 8

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

$ sudo dpkg-reconfigure apparmor
Run Code Online (Sandbox Code Playgroud)

  • 之后必须运行 `sudo apparmor_parser -r /var/lib/snapd/apparmor/profiles/snap.docker.compose` 来重新加载此快照的 apparomr 配置文件 (2认同)

小智 4

您需要更新您的 AppArmor 配置:

Snap Docker 受到 AppArmor 的严格控制。

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

dmesg | grep docker-compose
Run Code Online (Sandbox Code Playgroud)

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

内核:[]审核:类型= 1400审核(....):apparmor =“拒绝”操作=“exec”配置文件=“snap.docker.dockerd”名称=“/bin/kmod”pid=7213 comm=“ exe”requested_mask =“x”denied_mask =“x”fsuid = 0 ouid = 0

要纠正此问题,只需转到 apparmor 配置的可调参数:

cd /etc/apparmor.d/tunables
Run Code Online (Sandbox Code Playgroud)

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

@{HOMEDIRS}=/home/ 
Run Code Online (Sandbox Code Playgroud)

到

@{HOMEDIRS}=/home/ /media/aUser/Linux/
Run Code Online (Sandbox Code Playgroud)

希望有帮助。