Comment on page
*使用非 root 用户运行 docker 容器
默认情况下,
vaultwarden/server
使用 root 用户在容器内运行服务。如果您想以非 root 用户身份运行容器,则需要进行一些设置:1、确保您在容器内挂载的目录可供用户写入。例如,如果您决定以
nobody
身份运行,那么此目录就必须是 id 为 65534
的用户可以写入的。有关在容器内指定用户的其他方法,请参阅 docker 文档。这里的示例中,我们将使用 nobody
。# 在主机上创建目录,将其更改为您的首选路径
sudo mkdir /vw-data
# 使用用户 ID 设置所有者。
# 请注意,所有权必须与容器内的 /etc/passwd 中的用户一致,而不是主机上的用户
sudo chown 65534 /vw-data
# 授予所有者对该文件夹的全部权限
sudo chmod u+rwx /vw-data
2、使用合适的参数启动容器。定义用户并确保启动时端口设置为
1024
或更高。docker run -d \
--name vaultwarden \
--user nobody \
-e ROCKET_PORT=1024 \
-v /vw-data/:/data/ \
-p 80:1024 \
vaultwarden/server:latest
请注意,端口映射 (
-p 80:1024
) 反映了 ROCKET_PORT
设置。另一种方法可能是
CAP_NET_BIND_SERVICE
,它允许以非 root 用户身份绑定到低于 1024
的端口。cap_add:
- CAP_NET_BIND_SERVICE
user: nobody