-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Running docker container with non root user
St. Veit edited this page Sep 23, 2023
·
5 revisions
By default vaultwarden/server
is using root user to run service inside the container. There are few things you need to set to run the container as non-root user if you wish to do so:
- Make sure that the directory, you're mounting inside the container will be writable by the user. For example if you decide to run as
nobody
, the directory needs to be writable by user with id 65534. For other ways to specify user inside the container, see the docker documentation, in our examples here we will usenobody
.
# Make the directory on the host, change this to you preferred path
sudo mkdir /vw-data
# Set the owner using user id.
# Note that the ownership must match user in /etc/passwd *inside* the container, not on your host
sudo chown 65534 /vw-data
# Give the owner full rights to the folder
sudo chmod u+rwx /vw-data
- Start the container with proper parameters. Define the user and make sure to start with port set to
1024
or higher.
docker run -d \
--name vaultwarden \
--user nobody \
-e ROCKET_PORT=1024 \
-v /vw-data/:/data/ \
-p 80:1024 \
vaultwarden/server:latest
Notice that the port mapping (-p 80:1024
) reflects the ROCKET_PORT
setting.
Another way may be CAP_NET_BIND_SERVICE, which allows to bind to ports below 1024 as non-root user.
cap_add:
- CAP_NET_BIND_SERVICE
user: nobody
- Which container image to use
- Starting a container
- Using Docker Compose
- Using Podman
- Updating the vaultwarden image
- Overview
- Enabling admin page
- SMTP configuration
- Disable registration of new users
- Disable invitations
- Enabling WebSocket notifications
- Enabling Mobile Client push notification
- Other configuration
- Using the MariaDB (MySQL) Backend
- Using the PostgreSQL Backend
- Running without WAL enabled
- Migrating from MariaDB (MySQL) to SQLite
- Hardening Guide
- Password hint display
- Enabling U2F and FIDO2 WebAuthn authentication
- Enabling YubiKey OTP authentication
- Fail2Ban Setup
- Fail2Ban + ModSecurity + Traefik + Docker
- Translating the email templates
- Translating admin page
- Customize Vaultwarden CSS
- Disabling or overriding the Vault interface hosting
- Building binary
- Building your own docker image
- Git hooks
- Differences from the upstream API implementation