Sql Server Linux-tárolók üzembe helyezése és csatlakoztatása
A következőkre vonatkozik:SQL Server – Linux
Ez a cikk az SQL Server Linux-tárolók üzembe helyezését és csatlakoztatását ismerteti.
További üzembe helyezési forgatókönyvek:
Jegyzet
Ez a cikk kifejezetten a mssql-server-linux
rendszerkép használatára összpontosít. A Windows-tárolókban lévő SQL Server-telepítéseket nem támogatja a támogatás. Fejlesztéshez és teszteléshez létrehozhat saját egyéni tárolórendszerképeket az SQL Serverrel való együttműködéshez Windows-tárolókban. A mintafájlok elérhetők a GitHub-on. A mintafájlok csak referenciaként szolgálnak.
Fontos
Mielőtt egy SQL Server-tárolót futtatna éles használati esetekhez, tekintse át a Microsoft SQL Server technikai támogatási szabályzatát, hogy biztosan támogatott konfiguráción fusson.
Ez a 6 perces videó bemutatja az SQL Server tárolókon való futtatását:
A konténerkép lekérése és futtatása
Az SQL Server Docker-tárolólemezképeinek lekéréséhez és futtatásához kövesse az alábbi rövid útmutató előfeltételeit és lépéseit:
- Az SQL Server 2017 konténer képének futtatása a Dockerrel
- Az SQL Server 2019 konténerkép futtatása Dockerrel
- Futtassa az SQL Server 2022 tárolórendszerképét a Docker segítségével
Ez a konfigurációs cikk további használati forgatókönyveket tartalmaz a következő szakaszokban.
Csatlakozás és lekérdezés
A tárolóban lévő SQL Servert a tárolón kívülről vagy a tárolón belülről is csatlakoztathatja és lekérdezheti. A következő szakaszok mindkét forgatókönyvet ismertetik.
A tárolón kívüli eszközök
A tároló gazdagépen található SQL Server-példányhoz bármely külső Linux, Windows vagy macOS rendszerű eszközről csatlakozhat, amely támogatja az SQL-kapcsolatokat. Néhány gyakori eszköz:
Az alábbi példa sqlcmd használ a tárolóban futó SQL Serverhez való csatlakozáshoz. A kapcsolatfüzérben az IP-cím a tárolót futtató gazdagép IP-címe.
Jegyzet
Az sqlcmd újabb verziói (mssql-tools18) alapértelmezés szerint biztonságosak. Ha a 18-as vagy újabb verziót használja, hozzá kell adnia a No
opciót az sqlcmd -hoz, hogy a titkosítás ne legyen kötelező.
sqlcmd -S 10.3.2.4 -U sa -P '<YourPassword>'
sqlcmd -S 10.3.2.4 -U sa -P "<YourPassword>"
sqlcmd -S 10.3.2.4 -U sa -P "<YourPassword>"
Ha olyan gazdagépportot állított be, amely nem az alapértelmezett 1433
, adja hozzá a portot a kapcsolati karakterlánchoz. Ha például a docker run
parancsban megadta a -p 1400:1433
, akkor az 1400-as port explicit megadásával csatlakozzon.
sqlcmd -S 10.3.2.4,1400 -U sa -P '<YourPassword>'
sqlcmd -S 10.3.2.4,1400 -U sa -P "<YourPassword>"
sqlcmd -S 10.3.2.4,1400 -U sa -P "<YourPassword>"
Eszközök a tárolóban
Az SQL Server 2017 -től kezdve (14.x) a SQL Server parancssori eszközei szerepelnek a tárolólemezképben. Ha interaktív parancssorral csatakozik a képfájlhoz, helyben futtathatja az eszközöket.
A
docker exec -it
paranccsal elindíthat egy interaktív Bash-rendszerhéjat a futó tárolóban. Az alábbi példábane69e056c702d
a tárolóazonosító.docker exec -it e69e056c702d "bash"
Borravaló
Nem kell mindig megadnia a teljes tárolóazonosítót. Csak annyi karaktert kell megadnia, amennyi az egyedi azonosításhoz szükséges. Ebben a példában tehát elegendő lehet
e6
vagye69
használata a teljes azonosító helyett. A tárolóazonosító megkereséséhez futtassa adocker ps -a
parancsot.Miután belépett a tárolóba, csatlakozzon helyben az sqlcmd használatával a teljes elérési út megadásával.
/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P '<YourPassword>'
Jegyzet
Az sqlcmd újabb verziói alapértelmezés szerint biztonságosak. További információ a kapcsolattitkosításról: sqlcmd segédprogram Windowshoz, és Csatlakozás sqlcmd Linuxhoz és macOS-hez. Ha a kapcsolat nem sikerül, hozzáadhatja a
-No
opciót az sqlcmd parancshoz, hogy a titkosítás választható legyen és ne legyen kötelező.Amikor végzett sqlcmd, írja be a
exit
.Ha befejezte az interaktív parancssort, írja be a
exit
. A tároló az interaktív bash shellből való kilépés után is tovább fut.
Ellenőrizze a tároló verzióját
Ha egy futó tárolóban szeretné tudni az SQL Server verzióját, futtassa az alábbi parancsot a megjelenítéséhez. Cserélje le <Container ID or name>
a céltároló azonosítójával vagy nevével. Cserélje le a <password>
a rendszergazdai (sa
) fiók SQL Server-jelszavára.
docker exec -it <Container ID or name> /opt/mssql-tools/bin/sqlcmd \
-S localhost -U sa -P '<password>' \
-Q 'SELECT @@VERSION'
Jegyzet
Az sqlcmd újabb verziói alapértelmezés szerint biztonságosak. További információ a kapcsolattitkosításról: sqlcmd segédprogram Windowshoz, és Csatlakozás sqlcmd Linuxhoz és macOS-hez. Ha a kapcsolat nem sikerül, hozzáadhatja a -No
beállítást az sqlcmd részéhez annak megadásához, hogy a titkosítás nem kötelező.
docker exec -it <Container ID or name> /opt/mssql-tools/bin/sqlcmd `
-S localhost -U sa -P "<password>" `
-Q "SELECT @@VERSION"
Jegyzet
Az sqlcmd újabb verziói alapértelmezés szerint biztonságosak. További információ a kapcsolattitkosításról: sqlcmd segédprogram Windowshoz, és Csatlakozás sqlcmd Linuxhoz és macOS-hez. Ha a kapcsolat nem sikerül, hozzáadhatja a -No
beállítást az sqlcmd paraméterhez, hogy a titkosítás csak opcionális legyen, ne kötelező.
docker exec -it <Container ID or name> /opt/mssql-tools/bin/sqlcmd ^
-S localhost -U sa -P "<password>" ^
-Q "SELECT @@VERSION"
Jegyzet
Az sqlcmd újabb verziói alapértelmezés szerint biztonságosak. További információ a kapcsolattitkosításról: sqlcmd segédprogram Windowshoz, és Csatlakozás sqlcmd Linuxhoz és macOS-hez. Ha a kapcsolat nem sikerül, hozzáadhatja a -No
beállítást az sqlcmd megadásával, hogy a titkosítás nem kötelező, nem kötelező.
A céltároló lemezképének SQL Server-verzióját és buildszámát is azonosíthatja. Az alábbi parancs megjeleníti az SQL Server verzióját és a mcr.microsoft.com/mssql/server:2022-latest
rendszerképre vonatkozó összeállítási információkat. Ezt úgy teszi, hogy egy új tárolót futtat egy PAL_PROGRAM_INFO=1
környezeti változóval. Az eredményül kapott tároló azonnal kilép, és a docker rm
parancs eltávolítja.
docker run -e PAL_PROGRAM_INFO=1 --name sqlver \
-ti mcr.microsoft.com/mssql/server:2022-latest && \
docker rm sqlver
docker run -e PAL_PROGRAM_INFO=1 --name sqlver `
-ti mcr.microsoft.com/mssql/server:2022-latest; `
docker rm sqlver
docker run -e PAL_PROGRAM_INFO=1 --name sqlver ^
-ti mcr.microsoft.com/mssql/server:2022-latest && ^
docker rm sqlver
Az előző parancsok a következő kimenethez hasonló verzióinformációkat jelenítenek meg:
sqlservr
Version 16.0.1000.6
Build ID d81e9b6de06534e649bd57dd609aa3050f5e380f361b7f8a80a80eeb71e7422c
Build Type release
Git Version 2aede92f
Built at Tue Nov 01 06:11:40 GMT 2022
PAL
Build ID 754097e8f0db68f559e1cbc9d46952ac9fd518b5da9f12964ef40fc9033720e3
Build Type release
Git Version d88e3e1130
Built at Tue Nov 01 06:08:02 GMT 2022
Packages
system.security mssql-16.0.1000.6_26_official-release
system.certificates mssql-16.0.1000.6_26_official-release
sqlagent 16.0.1000.6
system.wmi 10.0.17763.2061.202107231
system.netfx 4.7.0.0.202104262
system mssql-16.0.1000.6_26_official-release
system.common 10.0.17763.2061.202107231
sqlservr 16.0.1000.6
secforwarderxplat 16.0.1000.6
Adott SQL Server-tárolórendszerkép futtatása
Jegyzet
- Az SQL Server 2019 (15.x) CU3-tól kezdve az Ubuntu 18.04 támogatott.
- Az SQL Server 2019 (15.x) CU10-től kezdve az Ubuntu 20.04 támogatott.
- Az mssql/server összes elérhető címkéjének listáját a https://mcr.microsoft.com/v2/mssql/server/tags/listalatt tekintheti meg.
Vannak olyan helyzetek, amikor nem szeretné a legújabb SQL Server-tárolórendszerképet használni. Egy adott SQL Server-tárolórendszerkép futtatásához kövesse az alábbi lépéseket:
Azonosítsa a használni kívánt kiadáshoz tartozó Docker-címkét
tag
. Az elérhető címkék megtekintéséhez lásd a Microsoft Artifact Registry.Kérje le az SQL Server tárolólemezképét a címkével. Ha például le szeretné húzni a
2019-CU18-ubuntu-20.04
képet, a következő parancsban cserélje le a<image_tag>
-et2019-CU18-ubuntu-20.04
-re.docker pull mcr.microsoft.com/mssql/server:<image_tag>
Ha új tárolót szeretne futtatni ezzel a lemezképpel, adja meg a címke nevét a
docker run
parancsban. Az alábbi parancsban cserélje le a<image_tag>
a futtatni kívánt verzióra. 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.Fontos
A
SA_PASSWORD
környezeti változó elavult. Használjon inkábbMSSQL_SA_PASSWORD
.docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1401:1433 -d mcr.microsoft.com/mssql/server:<image_tag>
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1401:1433 -d mcr.microsoft.com/mssql/server:<image_tag>
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1401:1433 -d mcr.microsoft.com/mssql/server:<image_tag>
Ezek a lépések egy meglévő tároló leminősítésére is használhatók. Előfordulhat például, hogy vissza szeretne állni vagy lefokozni egy futó tárolót hibaelhárítás vagy tesztelés céljából. Egy futó tároló leminősítéséhez az adatmappához perzisztencia technikát kell használnia. Kövesse az frissítési szakaszban ismertetett lépéseket, de az új tároló futtatásakor adja meg a régebbi verzió címkenevét.
RHEL-alapú tárolólemezképek futtatása
Az SQL Server Linux-tárolólemezképeinek dokumentációja az Ubuntu-alapú tárolókra mutat. Az SQL Server 2019 -től (15.x) kezdődően a Red Hat Enterprise Linux (RHEL) alapú tárolókat használhatja. Az RHEL képének példája így fog kinézni: mcr.microsoft.com/mssql/rhel/server:2019-CU15-rhel-8
.
Az alábbi parancs például lekéri az RHEL 8-at használó SQL Server 2019 (15.x) tároló 18- os kumulatív frissítését:
docker pull mcr.microsoft.com/mssql/rhel/server:2019-CU18-rhel-8.4
docker pull mcr.microsoft.com/mssql/rhel/server:2019-CU18-rhel-8.4
docker pull mcr.microsoft.com/mssql/rhel/server:2019-CU18-rhel-8.4
Produkciós konténerképek futtatása
Az előző szakaszban található rövid útmutató az SQL Server ingyenes fejlesztői kiadását futtatja a Microsoft Artifact Registryből. A legtöbb információ továbbra is érvényes, ha előállítási tárolóképeket szeretne futtatni, például Nagyvállalati, Standard vagy Webes verziókat. Van azonban néhány különbség, amelyek itt vannak körvonalazva.
Az SQL Servert csak akkor használhatja éles környezetben, ha érvényes licenccel rendelkezik. Ingyenesen beszerezhet egy SQL Server Express termelési licencet itt. Az SQL Server Standard és Enterprise kiadásokhoz tartozó licencek a Microsoft mennyiségi licenceléskeretében érhetők el.
A fejlesztői konténerkép konfigurálható az éles kiadások futtatására is.
Éles kiadás futtatásához tekintse át a követelményeket és futtassa az eljárásokat a rövid útmutatóban. Meg kell adnia a gyártási verziót a MSSQL_PID
környezeti változóval. Az alábbi példa bemutatja, hogyan futtatható a legújabb SQL Server 2022 (16.x) tárolórendszerkép az Enterprise Core kiadáshoz.
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.
docker run --name sqlenterprise \
-e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \
-e 'MSSQL_PID=EnterpriseCore' -p 1433:1433 \
-d mcr.microsoft.com/mssql/server:2022-latest
docker run --name sqlenterprise `
-e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-e "MSSQL_PID=EnterpriseCore" -p 1433:1433 `
-d "mcr.microsoft.com/mssql/server:2022-latest"
docker run --name sqlenterprise ^
-e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" ^
-e "MSSQL_PID=EnterpriseCore" -p 1433:1433 ^
-d "mcr.microsoft.com/mssql/server:2022-latest"
Fontos
A Y
környezeti változónak ACCEPT_EULA
és kiadási értéknek a MSSQL_PID
való átadásával kifejezi, hogy érvényes és meglévő licenccel rendelkezik a használni kívánt SQL Server kiadásához és verziójához. Azzal is egyetért, hogy a tárolólemezképen futó SQL Server-szoftverek használatára az SQL Server-licenc feltételei vonatkoznak.
A MSSQL_PID
lehetséges értékeinek teljes listájáért tekintse meg Sql Server-beállítások konfigurálása környezeti változókkal Linux.
Több SQL Server-tároló futtatása
A Docker lehetővé teszi több SQL Server-tároló futtatását ugyanazon a gazdagépen. Ez a megközelítés olyan forgatókönyvekhez használható, amelyekhez több SQL Server-példány szükséges ugyanazon a gazdagépen. Minden tárolónak egy másik porton kell elérhetővé tennie magát.
Az alábbi példa két SQL Server 2017 -tárolót (14.x) hoz létre, és leképozza őket a gazdaszámítógépen 1401
és 1402
portokra.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1402:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1402:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1401:1433 -d mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1402:1433 -d mcr.microsoft.com/mssql/server:2017-latest
Az alábbi példa két SQL Server 2019-tárolót (15.x) hoz létre, és leképozza őket a gazdaszámítógép 1401
és 1402
portokra.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1402:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1402:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1402:1433 -d mcr.microsoft.com/mssql/server:2019-latest
Az alábbi példa két SQL Server 2022-es (16.x) tárolót hoz létre, és leképozza őket a gazdaszámítógépen 1401
és 1402
portokra.
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1401:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' -p 1402:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1401:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1402:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1401:1433 -d mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" -p 1402:1433 -d mcr.microsoft.com/mssql/server:2022-latest
Figyelem
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.
Most már két SQL Server-példány fut külön tárolókban. Az ügyfelek a tárológazda IP-címével és a tároló portszámával csatlakozhatnak az egyes SQL Server-példányokhoz.
Jegyzet
Az sqlcmd újabb verziói (mssql-tools18) alapértelmezés szerint biztonságosak. Ha a 18-es vagy újabb verziót használja, az sqlcmd No
beállítást kell megadnia, hogy a titkosítás nem kötelező, nem kötelező.
sqlcmd -S 10.3.2.4,1401 -U sa -P '<YourPassword>'
sqlcmd -S 10.3.2.4,1402 -U sa -P '<YourPassword>'
sqlcmd -S 10.3.2.4,1401 -U sa -P "<YourPassword>"
sqlcmd -S 10.3.2.4,1402 -U sa -P "<YourPassword>"
sqlcmd -S 10.3.2.4,1401 -U sa -P "<YourPassword>"
sqlcmd -S 10.3.2.4,1402 -U sa -P "<YourPassword>"
SQL Server frissítése konténerekben
A tárolólemezkép Dockerrel való frissítéséhez először azonosítsa a frissítés kiadásának címkéjét. Kérje le ezt a verziót a beállításjegyzékből a docker pull
paranccsal:
docker pull mcr.microsoft.com/mssql/server:<image_tag>
Ez frissíti az SQL Server rendszerképét a létrehozott új tárolókhoz, de nem frissíti az SQL Servert a futó tárolókban. Ehhez létre kell hoznia egy új tárolót a legújabb SQL Server-tároló lemezképével, és át kell telepítenie az adatokat az új tárolóba.
Győződjön meg arról, hogy a meglévő SQL Server-tárolóhoz adatmegőrzési technikák egyikét használja. Ez lehetővé teszi egy új tároló elindítását ugyanazokkal az adatokkal.
Állítsa le az SQL Server-tárolót a
docker stop
paranccsal.Hozzon létre egy új SQL Server-tárolót
docker run
jelöléssel, és adjon meg vagy egy megfeleltetett gazdagépkönyvtárat, vagy egy adatkötet-tárolót. Ügyeljen arra, hogy az SQL Server frissítéséhez használja az adott címkét. Az új tároló mostantól az SQL Server új verzióját használja a meglévő SQL Server-adatokkal.Fontos
A frissítés jelenleg csak RC1, RC2 és GA között támogatott.
Ellenőrizze az adatbázisokat és az adatokat az új tárolóban.
Opcionálisan távolítsa el a régi tárolót
docker rm
.
Kapcsolódó tartalom
- Ismerkedés az SQL Server 2017 (14.x) tárolólemezképeivel a Dockeren a rövid útmutató
- Első lépések az SQL Server 2019 (15.x) tárolóképeivel a Dockerben a gyors kezdési útmutató segítségével.
- Kezdje az SQL Server 2022 (16.x) tárolóképeivel a Dockeren, ha végigmegy a gyorsútmutatón.
- SQL Server Linux-tárolók konfigurálása és testreszabása
- Tekintse meg az erőforrásokat, visszajelzéseket és ismert problémákat a mssql-docker GitHub-adattárban.
- SQL Server Docker-tárolók hibaelhárítása
- SQL Server-tárolók magas rendelkezésre állása
- Biztonságos SQL Server Linux-tárolók
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ókért lásd: Hogyan járulhat hozzá az SQL Server dokumentációjához