Resetting SA Password in MSSQL Server Docker 2022

This was a bit tricky, so I thought I would share how this can actually be done. I found this difficult for several reasons. For one, SQL Server must be stopped for the script to work, because this is a container, it is not using systemctl, therefore terminating the SQL Server using a kill command results in the container exiting.

I figured out that stopping the container entirely, committing the container, and running a new container while overriding the entry point worked.

Commit Container

docker commit ${CONTAINER_ID} mrjb/mssql-test

Run Container

You will need to run a new instance of the committed container.

docker run -ti -u 0 --entrypoint=/bin/bash -v '/mnt/user/appdata/mssql':'/var/opt/mssql':'rw' mrjb/mssql-test

Running: mssql-conf set-sa-password

There are binaries that can be run to configure the SQL Server and they are located in this folder: cd /opt/mssql/bin

Running the command below will reset the password to whatever you put in the MSSQL_SA_PASSWORD environment variable.

MSSQL_SA_PASSWORD=${Password} /opt/mssql/bin/mssql-conf set-sa-password