Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server - Linux
In dit artikel wordt beschreven hoe veelvoorkomende fouten optreden bij het implementeren en gebruiken van SQL Server Docker-containers en hoe u technieken voor probleemoplossing kunt bieden om het probleem op te lossen.
Docker-opdrachtfouten
Als u fouten krijgt voor docker opdrachten, controleert u of de Docker-service wordt uitgevoerd en probeert u het met verhoogde machtigingen uit te voeren.
In Linux krijgt u bijvoorbeeld mogelijk de volgende fout bij het uitvoeren docker van opdrachten:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Als u deze fout in Linux krijgt, voert u dezelfde opdrachten uit als voorafgegaan door sudo. Als dat mislukt, controleert u of de Docker-service wordt uitgevoerd en start u deze indien nodig.
sudo systemctl status docker
sudo systemctl start docker
Controleer in Windows of u PowerShell of de opdrachtprompt als beheerder start.
Belangrijk
De omgevingsvariabele SA_PASSWORD is afgeschaft. Gebruik in plaats daarvan MSSQL_SA_PASSWORD.
Opstartfouten voor SQL Server-containers
Als de SQL Server-container niet kan worden uitgevoerd, voert u de volgende tests uit:
Als er een foutbericht wordt weergegeven,
failed to create endpoint CONTAINER_NAME on network bridge. Error starting proxy: listen tcp 0.0.0.0:1433 bind: address already in use.probeert u de containerpoort 1433 toe te wijzen aan een poort die al in gebruik is. Dit kan gebeuren als u SQL Server lokaal uitvoert op de hostcomputer. Dit kan ook gebeuren als u twee SQL Server-containers start en beide probeert toe te wijzen aan dezelfde hostpoort. Als dit gebeurt, gebruikt u de parameter om de-pcontainerpoort 1433 toe te wijzen aan een andere hostpoort. Voorbeeld: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`.Waarschuwing
Uw wachtwoord moet voldoen aan het standaard SQL Server-wachtwoordbeleid . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.
Als er een fout optreedt, bijvoorbeeld
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 deniedbij het starten van een container, voegt u uw gebruiker toe aan de docker-groep in Ubuntu. Afmelden en opnieuw aanmelden, omdat deze wijziging van invloed is op nieuwe sessies.usermod -aG docker $USERControleer of er foutberichten van de container zijn.
docker logs e69e056c702dZorg ervoor dat u voldoet aan de minimale geheugen- en schijfvereisten die zijn opgegeven in de sectie Vereisten van het quickstart-artikel.
Als u containerbeheersoftware gebruikt, moet u ervoor zorgen dat deze containerprocessen ondersteunt die als hoofdmap worden uitgevoerd. Het sqlservr-proces in de container wordt uitgevoerd als root.
Als uw SQL Server Docker-container direct na het starten wordt afgesloten, controleert u de Docker-logboeken. Als u PowerShell in Windows gebruikt met de
docker runopdracht, gebruikt u dubbele aanhalingstekens in plaats van enkele aanhalingstekens. Gebruik met PowerShell Core enkele aanhalingstekens.Controleer de installatie- en foutlogboeken van SQL Server.
Dump captures inschakelen
Als het SQL Server-proces in de container mislukt, moet u een nieuwe container maken met SYS_PTRACE ingeschakeld. Hiermee wordt de Linux-mogelijkheid toegevoegd om een proces te traceren, wat nodig is voor het maken van een dumpbestand op een uitzondering. Het dumpbestand kan worden gebruikt door ondersteuning om het probleem op te lossen. Met de volgende docker-opdracht wordt deze mogelijkheid ingeschakeld.
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
Waarschuwing
Uw wachtwoord moet voldoen aan het standaard SQL Server-wachtwoordbeleid . Standaard moet het wachtwoord ten minste acht tekens lang zijn en tekens bevatten uit drie van de volgende vier sets: hoofdletters, kleine letters, basis-10 cijfers en symbolen. Wachtwoorden mogen maximaal 128 tekens lang zijn. Gebruik wachtwoorden die zo lang en complex mogelijk zijn.
SQL Server-verbindingsfouten
Als u geen verbinding kunt maken met het SQL Server-exemplaar dat in uw container wordt uitgevoerd, voert u de volgende tests uit:
Zorg ervoor dat uw SQL Server-container wordt uitgevoerd door de kolom STATUS van de
docker ps -auitvoer te bekijken. Als dat niet het gaat, kuntdocker start <Container ID>u deze starten.Als u bent toegewezen aan een niet-standaardhostpoort (niet 1433), moet u ervoor zorgen dat u de poort opgeeft in uw verbindingsreeks. U kunt uw poorttoewijzing zien in de kolom POORTEN van de
docker ps -auitvoer. Met de volgende opdracht wordt sqlcmd bijvoorbeeld verbonden met een container die luistert op poort 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>"Als u
docker runhebt gebruikt met een bestaand toegewezen gegevensvolume of gegevensvolumecontainer, negeert SQL Server de waarde vanMSSQL_SA_PASSWORD. In plaats daarvan wordt het vooraf geconfigureerdesaaccountwachtwoord gebruikt op basis van de SQL Server-gegevens in het gegevensvolume of de container voor het gegevensvolume. Controleer of u hetsawachtwoord gebruikt dat is gekoppeld aan de gegevens waarop u zich aansluit.Controleer de installatie- en foutlogboeken van SQL Server.
SQL Server-beschikbaarheidsgroepen
Als u Docker gebruikt met SQL Server-beschikbaarheidsgroepen, zijn er twee aanvullende vereisten.
Wijs de poort toe die wordt gebruikt voor replicacommunicatie (standaard 5022). Specificeer bijvoorbeeld
-p 5022:5022als onderdeel van uwdocker run-opdracht.Stel de hostnaam van de container expliciet in met de
-h YOURHOSTNAMEparameter van dedocker runopdracht. Deze hostnaam wordt gebruikt wanneer u uw beschikbaarheidsgroep configureert. Als u-hniet specificeert, wordt deze standaard ingesteld op de container-ID.
SQL Server-installatie- en foutlogboeken
U kunt de installatie- en foutlogboeken van SQL Server bekijken in /var/opt/mssql/log. Als de container niet wordt uitgevoerd, start u eerst de container. Gebruik vervolgens een interactieve opdrachtprompt om de logboeken te inspecteren. U kunt de container-id ophalen door de opdracht docker psuit te voeren.
docker start <ContainerID>
docker exec -it <ContainerID> "bash"
Voer vanuit de bash-sessie in uw container de volgende opdrachten uit:
cd /var/opt/mssql/log
cat setup*.log
cat errorlog
Aanbeveling
Als u een hostmap hebt gekoppeld aan /var/opt/mssql toen u de container maakte, kunt u in plaats daarvan zoeken in de submap van het logboek op het toegewezen pad op de host.
Opdrachten uitvoeren in een container
Als u een actieve container hebt, kunt u opdrachten in de container uitvoeren vanuit een hostterminal.
Voer de container-id uit om de container-id op te halen:
docker ps -a
Ga als volgende te werk om een bash-terminal te starten in de container:
docker exec -it <Container ID> /bin/bash
U kunt nu opdrachten uitvoeren alsof u ze uitvoert in de terminal in de container. Wanneer u klaar bent, typt exitu . Hierdoor wordt de interactieve opdrachtsessie afgesloten, maar de container blijft actief.
Verwante inhoud
              
               Bijdragen aan SQL-documentatie
Wist u dat u zelf SQL-inhoud kunt bewerken? Door dit te doen helpt u niet alleen onze documentatie te verbeteren, maar krijgt u ook erkenning als bijdrager aan de pagina.
Zie Microsoft Learn-documentatie bewerken voor meer informatie.