Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server Linux rendszeren
Ez a cikk az SQL Server Docker-tárolók üzembe helyezésekor és használatakor tapasztalt gyakori hibákról szól, és hibaelhárítási technikákat biztosít a probléma megoldásához.
Docker-parancshibák
Ha bármilyen docker parancs esetén hibaüzenetet kap, győződjön meg arról, hogy a docker szolgáltatás fut, és próbáljon meg emelt szintű engedélyekkel futni.
Linuxon például a következő hibaüzenet jelenhet meg a parancsok futtatásakor docker :
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Ha linuxos rendszeren jelenik meg ez a hiba, futtassa ugyanazokat a parancsokat, mint a következővel sudo: . Ha ez nem sikerül, ellenőrizze, hogy fut-e a docker szolgáltatás, és szükség esetén indítsa el.
sudo systemctl status docker
sudo systemctl start docker
Windows rendszeren ellenőrizze, hogy rendszergazdaként indítja-e el a PowerShellt vagy a parancssort.
Fontos
A SA_PASSWORD környezeti változó elavult. A MSSQL_SA_PASSWORD használható helyette.
SQL Server-tároló indítási hibái
Ha az SQL Server-tároló futtatása sikertelen, próbálkozzon a következő tesztekkel:
Ha például
failed to create endpoint CONTAINER_NAME on network bridge. Error starting proxy: listen tcp 0.0.0.0:1433 bind: address already in use.hibaüzenetet kap, az 1433-as tárolóportot egy már használatban lévő portra próbálja leképezni. Ez akkor fordulhat elő, ha az SQL Servert helyileg futtatja a gazdaszámítógépen. Ez akkor is megtörténhet, ha két SQL Server konténert indít el, és megpróbálja mindkettőt ugyanarra a rendszerportra leképezni. Ha ez történik, a-pparaméterrel rendelje le az 1433-at egy másik gazdagépportra. Például: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`.Figyelmeztetés
A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.
Ha például
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 deniedegy tároló indításakor hibaüzenetet kap, vegye fel a felhasználót az Ubuntu docker-csoportjába. Ezután jelentkezzen ki és jelentkezzen be újra, mivel ez a változás hatással lesz az új munkamenetekre.usermod -aG docker $USEREllenőrizze, hogy vannak-e hibaüzenetek a tárolóból.
docker logs e69e056c702dGyőződjön meg arról, hogy megfelel a gyorsútmutató-cikk előfeltételek szakaszában megadott minimális memória- és lemezkövetelményeknek.
Ha bármilyen tárolókezelő szoftvert használ, győződjön meg arról, hogy támogatja a gyökérként futó tárolófolyamatokat. A tároló sqlservr-folyamata gyökérként fut.
Ha az SQL Server Docker-tároló közvetlenül az indítás után kilép, ellenőrizze a Docker-naplókat. Ha Windows rendszeren használja a PowerShellt a
docker runparanccsal, használjon dupla idézőjeleket egyetlen idézőjel helyett. A PowerShell Core-nal egyetlen idézőjelet használhat.Tekintse át az SQL Server beállítási és hibanaplóit.
Memóriakép-rögzítések engedélyezése
Ha az SQL Server folyamat nem működik a tárolóban, hozzon létre egy új tárolót, amelyben a SYS_PTRACE engedélyezett. Ez hozzáad egy Linux alapú képességet egy folyamat nyomon követéséhez, amely egy kivétel esetén dömpájlt létrehozásához szükséges. A dömpfájlt a támogatás használhatja a probléma megoldásához. A következő Docker-futtatási parancs engedélyezi ezt a képességet.
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
Ha az SQL Server 2025 -höz (17.x) vagy egy újabb verzióhoz helyez üzembe tárolót, használja MSSQL_PID=DeveloperStandard a Standard Developer kiadáshoz és MSSQL_PID=Developer az Enterprise Developer kiadáshoz.
Figyelmeztetés
A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.
SQL Server-kapcsolati hibák
Ha nem tud csatlakozni a tárolóban futó SQL Server-példányhoz, próbálkozzon az alábbi tesztekkel:
Győződjön meg arról, hogy az SQL Server-tároló fut a kimenet STATUS oszlopának
docker ps -amegtekintésével. Ha nem, használjadocker start <Container ID>a kezdéshez.Ha nem alapértelmezett gazdagépportra van megfeleltetve (nem 1433), győződjön meg arról, hogy a portot a kapcsolati sztring adja meg. A portleképezés a kimenet PORT oszlopában
docker ps -alátható. Az alábbi parancs például az sqlcmd-et az 1401-es porton figyelő tárolóhoz csatlakoztatja: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>"Ha meglévő leképezett adatkötettel vagy adatkötet-tárolóval használta
docker run, az SQL Server figyelmen kívül hagyja aMSSQL_SA_PASSWORD. Ehelyett az előre konfiguráltsafiókjelszót használja a rendszer az adatkötetben vagy adatkötet-tárolóban lévő SQL Server-adatokból. Ellenőrizze, hogy asacsatolt adatokhoz társított jelszót használja-e.Tekintse át az SQL Server beállítási és hibanaplóit.
SQL Server rendelkezésre állási csoportok
Ha a Dockert SQL Server rendelkezésre állási csoportokkal használja, két további követelmény is van.
A replika-kommunikációhoz használt port leképezése (alapértelmezett 5022). Adja meg
-p 5022:5022például adocker runparancs részeként.Explicit módon állítsa be a tároló gazdagépének nevét a
-h YOURHOSTNAMEdocker runparancs paraméterével. A gazdagépnevet akkor használja, amikor a rendelkezésre állási csoportot konfigurálja. Ha nem adja meg-h, alapértelmezés szerint a tárolóazonosító lesz.
SQL Server beállítási és hibanaplók
Az SQL Server beállítási és hibanaplóit a /var/opt/mssql/log fájlban tekintheti meg. Ha a tároló nem fut, először indítsa el a tárolót. Ezután egy interaktív parancssor használatával vizsgálja meg a naplókat. A tárolóazonosítót a parancs docker psfuttatásával szerezheti be.
docker start <ContainerID>
docker exec -it <ContainerID> "bash"
A tárolón belüli bash-munkamenetben futtassa a következő parancsokat:
cd /var/opt/mssql/log
cat setup*.log
cat errorlog
Jótanács
Ha a tároló létrehozásakor egy gazdagépkönyvtárat csatlakoztatott a /var/opt/mssql fájlhoz, ehelyett a gazdagép leképezett elérési útjának napló alkönyvtárában tekintheti meg.
Parancsok végrehajtása tárolóban
Ha rendelkezik futó tárolóval, parancsokat hajthat végre a tárolón belül egy gazdagépterminálról.
A tárolóazonosító futtatásának lekérése:
docker ps -a
Bash-terminál indítása a tároló futtatásában:
docker exec -it <Container ID> /bin/bash
Most úgy futtathat parancsokat, mintha a tárolón belüli terminálon futtatja őket. Ha elkészült, írja be a parancsot exit. Ez az interaktív parancs munkamenetből kilép, de a tároló továbbra is fut.
Kapcsolódó tartalom
Közreműködés az SQL dokumentációjában
Tudta, hogy saját maga szerkesztheti az SQL-tartalmakat? Ha így tesz, nem csak a dokumentáció fejlesztésében segít, hanem az oldal közreműködőjeként is jóváírást kap.
További információ: Microsoft Learn-dokumentáció szerkesztése.