Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server – Linux
I den här artikeln beskrivs vanliga fel som uppstår vid distribution och användning av SQL Server Docker-containrar och felsökningstekniker som hjälper dig att lösa problemet.
Docker-kommandofel
Om du får felmeddelanden för några docker
-kommandon, se till att docker-tjänsten körs och försök köra med administratörsrättigheter.
I Linux kan du till exempel få följande fel när du kör docker
kommandon:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Om du får det här felet i Linux kan du prova att köra samma kommandon som föregås av sudo
. Om det misslyckas kontrollerar du att Docker-tjänsten körs och startar den om det behövs.
sudo systemctl status docker
sudo systemctl start docker
I Windows kontrollerar du att du startar PowerShell eller kommandotolken som administratör.
Viktigt!
Miljövariabeln SA_PASSWORD
är inaktuell. Använd MSSQL_SA_PASSWORD
i stället.
Startfel för SQL Server-container
Om SQL Server-containern inte kan köras kan du prova följande tester:
Om du får ett fel som
failed to create endpoint CONTAINER_NAME on network bridge. Error starting proxy: listen tcp 0.0.0.0:1433 bind: address already in use.
, försöker du mappa containerporten 1433 till en port som redan används. Detta kan inträffa om du kör SQL Server lokalt på värddatorn. Det kan också inträffa om du startar två SQL Server-containrar och försöker mappa dem båda till samma värdport. Om detta inträffar använder du parametern-p
för att mappa containerporten 1433 till en annan värdport. Till exempel:docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1400:1433 -d mcr.microsoft.com/mssql/server:2017-latest`.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2017-latest`.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2017-latest`.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1400:1433 -d mcr.microsoft.com/mssql/server:2019-latest`.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2019-latest`.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2019-latest`.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1400:1433 -d mcr.microsoft.com/mssql/server:2022-latest`.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2022-latest`.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2022-latest`.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1400:1433 -d mcr.microsoft.com/mssql/server:2025-latest`.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2025-latest`.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1400:1433 -d mcr.microsoft.com/mssql/server:2025-latest`.
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
Om du får ett fel, till exempel
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30tdout=1&tail=all: dial unix /var/run/docker.sock: connect: permission denied
när du försöker starta en container, lägger du till användaren i docker-gruppen i Ubuntu. Logga sedan ut och logga in igen eftersom den här ändringen påverkar nya sessioner.usermod -aG docker $USER
Kontrollera om det finns några felmeddelanden från containern.
docker logs e69e056c702d
Kontrollera att du uppfyller minimikraven för minne och disk som anges i avsnittet krav i snabbstartsartikeln .
Om du använder någon programvara för containerhantering kontrollerar du att den stöder containerprocesser som körs som rot. Sqlservr-processen i containern körs som rot.
Om SQL Server Docker-containern avslutas omedelbart efter start kontrollerar du docker-loggarna. Om du använder PowerShell i Windows med
docker run
kommandot använder du dubbla citattecken i stället för enkla citattecken. Använd enkla citattecken med PowerShell Core.
Aktivera dumpfångster
Om SQL Server-processen misslyckas i containern bör du skapa en ny container med SYS_PTRACE aktiverad. Detta lägger till Linux-funktionen för att spåra en process, vilket är nödvändigt för att skapa en dumpfil på ett undantag. Dumpfilen kan användas av stöd för att felsöka problemet. Följande docker-körningskommando aktiverar den här funktionen.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -e 'MSSQL_PID=Developer' --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -e 'MSSQL_PID=Developer' --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -e 'MSSQL_PID=Developer' --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -e 'MSSQL_PID=Developer' --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2025-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2025-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -e "MSSQL_PID=Developer" --cap-add SYS_PTRACE -p 1401:1433 -d mcr.microsoft.com/mssql/server:2025-latest
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
Sql Server-anslutningsfel
Om du inte kan ansluta till SQL Server-instansen som körs i containern kan du prova följande tester:
Kontrollera att SQL Server-containern körs genom att titta på kolumnen STATUS för
docker ps -a
utdata. Om inte, använddocker start <Container ID>
för att starta den.Om du har mappat till en värdport som inte är standard (inte 1433) kontrollerar du att du anger porten i din anslutningssträng. Du kan se dina portinställningar i PORTS-kolumnen i
docker ps -a
-utdata. Följande kommando ansluter till exempel sqlcmd till en container som lyssnar på port 1401:sqlcmd -S 10.3.2.4,1401 -U sa -P '<YourPassword>'
sqlcmd -S 10.3.2.4,1401 -U sa -P "<YourPassword>"
sqlcmd -S 10.3.2.4,1401 -U sa -P "<YourPassword>"
Om du använde
docker run
med en befintlig mappad datavolym eller datavolymcontainer ignorerar SQL Server värdetMSSQL_SA_PASSWORD
för. I stället används det förkonfigureradesa
kontolösenordet från SQL Server-data i datavolymen eller datavolymcontainern. Kontrollera att du användersa
lösenordet som är associerat med de data som du ansluter till.
SQL Server-tillgänglighetsgrupper
Om du använder Docker med SQL Server-tillgänglighetsgrupper finns det två ytterligare krav.
Mappa porten som används för replikkommunikation (standard 5022). Ange
-p 5022:5022
till exempel som en del av kommandotdocker run
.Ange uttryckligen containerns värdnamn med parametern
-h YOURHOSTNAME
fördocker run
kommandot. Det här värdnamnet används när du konfigurerar tillgänglighetsgruppen. Om du inte anger det med-h
är container-ID:t standard.
Konfigurations- och felloggar för SQL Server
Du kan titta på konfigurations- och felloggarna för SQL Server i /var/opt/mssql/log. Om containern inte körs startar du först containern. Använd sedan en interaktiv kommandotolk för att inspektera loggarna. Du kan hämta container-ID:t genom att köra kommandot docker ps
.
docker start <ContainerID>
docker exec -it <ContainerID> "bash"
Kör följande kommandon från bash-sessionen i containern:
cd /var/opt/mssql/log
cat setup*.log
cat errorlog
Tips/Råd
Om du monterade en värdkatalog till /var/opt/mssql när du skapade containern kan du i stället titta i loggkatalogen på den mappade sökvägen på värddatorn.
Köra kommandon i en container
Om du har en container som körs kan du köra kommandon i containern från en värdterminal.
Så här kör du container-ID:t:
docker ps -a
Så här startar du en bash-terminal i containerkörningen:
docker exec -it <Container ID> /bin/bash
Nu kan du köra kommandon som om du kör dem i terminalen i containern. När du är klar skriver du exit
. Detta avslutas i den interaktiva kommandosessionen, men containern fortsätter att köras.
Relaterat innehåll
Bidra till SQL-dokumentation
Visste du att du kan redigera SQL-innehåll själv? Om du gör det hjälper du inte bara till att förbättra vår dokumentation, utan du får även kredit som deltagare på sidan.
Mer information finns i Redigera Microsoft Learn-dokumentation.