Megosztás a következőn keresztül:


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:

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.

  1. A docker exec -it paranccsal elindíthat egy interaktív Bash-rendszerhéjat a futó tárolóban. Az alábbi példában e69e056c702d 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 vagy e69 használata a teljes azonosító helyett. A tárolóazonosító megkereséséhez futtassa a docker ps -aparancsot.

  2. 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ő.

  3. Amikor végzett sqlcmd, írja be a exit.

  4. 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=1kö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:

  1. 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.

  2. 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>-et 2019-CU18-ubuntu-20.04-re.

    docker pull mcr.microsoft.com/mssql/server:<image_tag>
    
  3. 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ább MSSQL_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_PIDvaló á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_PIDlehetsé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.

  1. 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.

  2. Állítsa le az SQL Server-tárolót a docker stop paranccsal.

  3. 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.

  4. Ellenőrizze az adatbázisokat és az adatokat az új tárolóban.

  5. Opcionálisan távolítsa el a régi tárolót docker rm.

  • Ismerkedés az SQL Server 2017 (14.x) tárolólemezképeivel a Dockeren a rövid útmutató
  • Kezdje az SQL Server 2022 (16.x) tárolóképeivel a Dockeren, ha végigmegy a gyorsútmutatón.

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