-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
- Updating the vaultwarden image
- Using Docker Compose
- Using Podman
- Building your own docker image
- Building binary
- Pre-built binaries
- Third-party packages
- Deployment examples
- Proxy examples
- Logrotate example
- Overview
- Disable registration of new users
- Disable invitations
- Enabling admin page
- Disable the admin token
- Enabling WebSocket notifications
- Enabling Mobile Client push notification
- Enabling U2F and FIDO2 WebAuthn authentication
- Enabling YubiKey OTP authentication
- Changing persistent data location
- Changing the API request size limit
- Changing the number of workers
- SMTP configuration
- Translating the email templates
- Password hint display
- Disabling or overriding the Vault interface hosting
- Logging
- Creating a systemd service
- Syncing users from LDAP
- Using an alternate base dir (subdir/subpath)
- Other configuration