Reset the admin user's password

If your Portainer admin forgets their password, follow these steps to reset it. There are three methods depending on your Portainer environment.

For each method, the following command line arguments can be applied:

Argument
Description
Example

--password

Set the new admin password in plaintext that will be bcrypt-hashed before storage. If omitted, a strong random password is generated and written to stdout on success. Mutually exclusive with --password-hash.

docker run --rm -v portainer_data:/data portainer/helper-reset-password --password "MyNewP@ssw0rd"

--password-hash

Set the admin password using a precomputed bcrypt hash. The value is stored as-is and will not be re-hashed. Mutually exclusive with --password.

docker run --rm -v portainer_data:/data portainer/helper-reset-password --password-hash "$2y$..."

--data-path

The path to the Portainer data store inside the container. Defaults to /data. Use this to point to a different mount or directory if needed.

docker run --rm -v portainer_data:/portainerdata portainer/helper-reset-password --data-path /portainerdata

Method 1: Resetting the admin password if Portainer runs as a container

You would typically use this method if you run the Portainer Server on Docker Standalone.

First, go to our reset password container helper in GitHub, then stop the Portainer container by running this command:

docker stop "id-portainer-container"

Next, run the helper using the following command (you'll need to mount the Portainer data volume):

docker pull portainer/helper-reset-password
docker run --rm -v portainer_data:/data portainer/helper-reset-password

If successful, the output should look like this:

2020/06/04 00:13:58 Password successfully updated for user: admin
2020/06/04 00:13:58 Use the following password to login: &_4#\3^5V8vLTd)E"NWiJBs26G*9HPl1

If the helper is unable to find an admin user to update, it will create a new one for you. If the username admin is already used, it will create a user named admin-[randomstring]:

2022/08/10 07:36:33 [WARN] Unable to retrieve user with ID 1, will try to create, err: object not found inside the database
2022/08/10 07:36:33 Admin user admin-u0512b3f0v4dqk7o successfully created
2022/08/10 07:36:33 Use the following password to login: Sr#]YL_6D0k8Pd{pA9^|}F32j5J4I=av

Finally, use this command to start the Portainer container then try logging in with the new password:

Method 2: Resetting the admin password if Portainer runs as a stack/service

You would typically use this method if you run the Portainer Server on Docker Swarm.

First, scale the Portainer service to zero using this command:

Next, run the reset password container helper using the same bind-mount/volume as the data volume:

If successful, the output should look like this:

If the helper is unable to find an admin user to update, it will create a new one for you. If the username admin is already used, it will create a user named admin-[randomstring]:

Finally, start up the Portainer service scaling using this command then try logging in with the new password:

Method 3: Resetting the admin password if Portainer is deployed in a Kubernetes cluster

You would typically use this method if you run the Portainer Server on a Kubernetes cluster.

First, scale the Portainer deployment to zero using this command:

Next, create a pod using the reset password container helper image and mount the Portainer data volume. Create a pod YAML file using the command below:

You may need to change the YAML below to match your Portainer deployment (for example if using a different claimName).

Create the password reset pod using the command below:

Once the new pod is created and transitions into a completed state, you can see the new password in the pod logs:

If successful, the output should look something like this:

Finally, scale up the Portainer deployment using this command then try logging in with the new password:

You can delete the password reset pod using the below command:

Last updated

Was this helpful?