docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=XXX' -p 1433:1433 -v /mnt/home/docker_data/sqlserver/data:/var/opt/mssql/data -v /mnt/home/docker_data/sqlserver/log:/var/opt/mssql/log -v /mnt/home/docker_data/sqlserver/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2017-latest
It's ok
when I change server:2017-latest to server:2019-latest create new(after rm 2017)
docker status Exited (1) 2 seconds ago
docker logs cranky_almeida
SQL Server 2019 will run as non-root by default.
This container is running as user mssql.
To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216.
2022-02-08 06:46:18.33 Server Setup step is copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf'.
2022-02-08 06:46:18.39 Server ERROR: Setup FAILED copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf': 5(Access is denied.)
ERROR: BootstrapSystemDataDirectories() failure (HRESULT 0x80070005)
This is likely because SQL Server 2017 ran containers as root, and 2019 containers do not. The mssql user needs permissions to access the old data files.
centos7.8 Docker version 20.10.8 https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-docker-container-configure?view=sql-server-ver15&pivots=cs1-bash
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=XXX' -p 1433:1433 -v /mnt/home/docker_data/sqlserver/data:/var/opt/mssql/data -v /mnt/home/docker_data/sqlserver/log:/var/opt/mssql/log -v /mnt/home/docker_data/sqlserver/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2017-latest
It's okwhen I change server:2017-latest to server:2019-latest create new(after rm 2017) docker status Exited (1) 2 seconds ago