我想在 Docker 中运行一个 minecraft 服务器,所以我开始关注本指南。在指南中,建议创建一个系统用户具有主目录 ( /opt/minecraft
),但没有密码(您不应该能够以该用户身份“登录”)来运行服务器。它使用以下命令:sudo useradd -r -m -U -d /opt/minecraft -s /bin/bash minecraft
。
我切换到新创建的minecraft“系统用户”--> sudo su - minecraft
。
问题
所以,我想用码头工人或者docker-compose,问题就出在这里:
- 当我尝试使用 运行 docker-compose 时
sudo
,它会要求我输入密码(显然,该用户没有密码)。 - 当我尝试没有
sudo
,我明白了cannot create user data directory: /opt/minecraft/snap/docker/1458: Permission denied
。
我不太清楚这里该怎么做。我无法运行 docker。我想我不想删除用户的密码(这会存在安全风险),也不想为用户添加密码(然后你就可以通过 ssh 或其他方式登录)。我的做法是不是不对?
答案1
考虑添加特权 docker 组 https://docs.docker.com/engine/install/linux-postinstall/
这将允许你运行 docker 命令而无需 root 或 sudo
答案2
这是因为我正在使用snap
。
显然snap
不允许运行home
目录之外的任何内容。我卸载了该snap
docker
版本并从中安装了它apt
,现在它可以工作了(除了@madacoda 的答案之外,还使用该docker
组)。