我正在尝试在无根用户上运行 docker,但我似乎无法使用systemctl
.
我使用 Debian 11。要以 root 权限登录用户,我使用密钥对,并且除了通过特权用户之外的任何其他帐户登录均被禁用。
在遵循设置无根docker的教程之后https://statswork.wiki/engine/security/rootless/我得到这个输出:
[INFO] systemd not detected, dockerd-rootless.sh needs to be started manually:
PATH=/home/docker-user/bin:/sbin:/usr/sbin:$PATH dockerd-rootless.sh
[INFO] Creating CLI context "rootless"
Successfully created context "rootless"
[INFO] Make sure the following environment variables are set (or add them to ~/.bashrc):
# WARNING: systemd not found. You have to remove XDG_RUNTIME_DIR manually on every logout.
export XDG_RUNTIME_DIR=/home/docker-user/.docker/run
export PATH=/home/docker-user/bin:$PATH
export DOCKER_HOST=unix:///home/docker-user/.docker/run/docker.sock
我这样设置变量并在运行 systemctl --user 时收到以下错误
Failed to connect to bus: No such file or directory
我找到了这个线程:未检测到 systemd,需要手动启动 dockerd 守护进程,之后我成功为用户启用了延迟并设置了XDG_RUNTIME_DIR=/run/user/$UID
。
systemctl --user
按预期工作,但突然出现问题systemctl --user start docker
:
Failed to start docker.service: Unit docker.service not found.
我怀疑这是一个问题,因为该XDG_RUNTIME_DIR
变量未设置为/home/docker-user/.docker/run
。唉,我不能这样设置,因为systemctl --user
根本不起作用,所以我被困在这里。我无法登录用户,pam_systemd
因为正如我上面提到的,不允许 ssh 登录其他用户。我尝试重新安装rootless docker,但出现同样的错误。
有什么办法可以正确启用docker服务吗?