Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server – Linux
V tomto rychlém startu pomocí Dockeru načtete a spustíte image kontejneru SQL Serveru 2017 (14.x), mssql-server-linux. Pak se můžete připojit pomocí sqlcmd a vytvořit první databázi a spouštět dotazy.
Další informace o podporovaných platformách najdete v poznámkách k vydání pro SQL Server 2017 na Linuxu.
Výstraha
Když kontejner zastavíte a odeberete, data SQL Serveru v kontejneru se trvale odstraní. Další informace o zachování dat můžete vytvořit a zkopírovat záložní soubor z kontejneru nebo použít techniku trvalosti dat kontejneru.
Tento rychlý start vytvoří kontejnery SQL Serveru 2017 (14.x). Pokud chcete vytvořit kontejnery Linuxu pro různé verze SQL Serveru, přečtěte si téma:
V tomto rychlém startu pomocí Dockeru načtete a spustíte image kontejneru SQL Serveru 2019 (15.x) Linux , mssql-server-linux. Pak se můžete připojit pomocí sqlcmd a vytvořit první databázi a spouštět dotazy.
Další informace o podporovaných platformách najdete v poznámky k vydání pro SQL Server 2019 v systému Linux.
Výstraha
Když kontejner zastavíte a odeberete, data SQL Serveru v kontejneru se trvale odstraní. Další informace o zachování dat můžete vytvořit a zkopírovat záložní soubor z kontejneru nebo použít techniku trvalosti dat kontejneru.
Tento rychlý start vytvoří kontejnery SQL Serveru 2019 (15.x). Pokud chcete vytvořit kontejnery Linuxu pro různé verze SQL Serveru, přečtěte si téma:
V tomto rychlém startu použijete Docker k vyžádání a spuštění image kontejneru SQL Serveru 2022 (16.x) Linux, mssql-server-linux. Pak se můžete připojit pomocí sqlcmd a vytvořit první databázi a spouštět dotazy.
Další informace o podporovaných platformách najdete v poznámky k vydání SQL Serveru 2022 na Linuxu.
Výstraha
Když kontejner zastavíte a odeberete, data SQL Serveru v kontejneru se trvale odstraní. Další informace o zachování dat můžete vytvořit a zkopírovat záložní soubor z kontejneru nebo použít techniku trvalosti dat kontejneru.
Tento rychlý start vytvoří kontejnery SQL Serveru 2022 (16.x). Pokud chcete vytvořit kontejnery Linuxu pro různé verze SQL Serveru, přečtěte si téma:
V tomto rychlého startu použijete Docker ke stažení a spuštění image kontejneru SQL Serveru 2025 (17.x) Preview, mssql-server-linux. Pak se můžete připojit pomocí sqlcmd a vytvořit první databázi a spouštět dotazy.
Další informace o podporovaných platformách najdete v poznámkách k verzi sql Serveru 2025 Preview v Linuxu.
Výstraha
Když kontejner zastavíte a odeberete, data SQL Serveru v kontejneru se trvale odstraní. Další informace o zachování dat můžete vytvořit a zkopírovat záložní soubor z kontejneru nebo použít techniku trvalosti dat kontejneru.
Tento rychlý start vytvoří kontejnery SQL Serveru 2025 (17.x) Preview. Pokud chcete vytvořit kontejnery Linuxu pro různé verze SQL Serveru, přečtěte si téma:
Tato image se skládá z SQL Serveru spuštěného v Linuxu založeném na Ubuntu. Dá se použít s Docker Engine 1.8 nebo novějším v Linuxu.
Od verze SQL Server 2022 (16.x) CU 14 a SQL Server 2019 (15.x) CU 28 obsahují kontejnerové image nový balíček mssql-tools18. Předchozí adresář /opt/mssql-tools/bin
se postupně ukončuje. Nový adresář pro nástroje Microsoft ODBC 18 je /opt/mssql-tools18/bin
v souladu s nejnovější nabídkou nástrojů. Další informace o změnách a vylepšení zabezpečení naleznete v ODBC Driver 18.0 for SQL Server Released.
Příklady v tomto článku používají docker
příkaz. Většina těchto příkazů ale pracuje také s podmanem. Podman poskytuje rozhraní příkazového řádku podobné modulu Dockeru. Další informace najdete o Podman.
Důležité
sqlcmd v současné době nepodporuje parametr MSSQL_PID
při vytváření kontejnerů. Pokud použijete pokyny sqlcmd v tomto rychlém startu, vytvoříte kontejner s edicí Developer SQL Serveru. Pomocí pokynů pro rozhraní příkazového řádku (CLI) vytvořte kontejner pomocí licence podle vašeho výběru. Další informace najdete v tématu Nasazení a připojení k kontejnerům SQL Server Linux.
Požadavky
- Docker Engine 1.8 nebo novější v jakékoli podporované linuxové distribuci. Další informace najdete v tématu Instalace Dockeru.
- Další informace o požadavcích na hardware a podpoře procesoru najdete v tématu Požadavky na hardware a software pro SQL Server 2016 a SQL Server 2017.
- Další informace o požadavcích na hardware a podpoře procesoru najdete v tématu Požadavky na hardware a software pro SQL Server 2019.
- Další informace o požadavcích na hardware a podpoře procesoru najdete v tématu Požadavky na hardware a software pro SQL Server 2022.
- Další informace o požadavcích na hardware a podpoře procesoru najdete v tématu Požadavky na hardware a software pro SQL Server 2025 Preview.
Ovladač úložiště Dockeru
overlay2
. Tento ovladač je výchozí pro většinu uživatelů. Pokud tohoto poskytovatele úložiště nepoužíváte a potřebujete ho změnit, přečtěte si pokyny a upozornění v dokumentaci k Dockeru pro konfiguraci překrytí2.Nainstalujte na hostitele Dockeru nejnovější sqlcmd .
Alespoň 2 GB místa na disku.
Minimálně 2 GB paměti RAM.
Vyžádání a spuštění image kontejneru SQL Serveru s Linuxem
Před zahájením následujících kroků se ujistěte, že jste v horní části tohoto článku vybrali upřednostňované prostředí (Bash, PowerShell nebo cmd).
Pro příkazy Bash v tomto článku se sudo
používá. Pokud nechcete používat sudo
ke spuštění Dockeru, můžete nakonfigurovat docker
skupinu a přidat do této skupiny uživatele. Další informace najdete v části Kroky po instalaci pro Linux.
Stažení image kontejneru z registru
Stáhněte linuxové image kontejneru SQL Serveru 2017 (14.x) z Microsoft Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
docker pull mcr.microsoft.com/mssql/server:2017-latest
docker pull mcr.microsoft.com/mssql/server:2017-latest
Tento rychlý start vytvoří kontejnery SQL Serveru 2017 (14.x). Pokud chcete vytvořit kontejnery Linuxu pro různé verze SQL Serveru, přečtěte si téma:
Předchozí příkaz načte nejnovější image kontejneru SQL Serveru 2017 (14.x). Pokud chcete načíst konkrétní obrázek, přidejte dvojtečku a název značky, například mcr.microsoft.com/mssql/server:2017-GA-ubuntu
. Pokud chcete zobrazit všechny dostupné image, podívejte se na Microsoft Artifact Registry.
Spuštění kontejneru
Ke spuštění image kontejneru Linuxu s Dockerem můžete použít následující příkaz z prostředí Bash nebo příkazového řádku PowerShellu se zvýšenými oprávněními.
Důležité
Proměnná prostředí SA_PASSWORD
se již nepoužívá. Místo toho použijte MSSQL_SA_PASSWORD
.
sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2017-latest
Pokud používáte PowerShell Core, nahraďte dvojité uvozovky jednoduchými uvozovkami.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2017-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2017-latest
Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá. Pokud tyto požadavky na heslo nedodržujete, kontejner nemůže nastavit SQL Server a přestane fungovat. Protokol chyb můžete prozkoumat pomocí docker logs
příkazu.
Ve výchozím nastavení tento rychlý start vytvoří kontejner s edicí Developer SQL Serveru. Proces spouštění produkčních edicí v kontejnerech se mírně liší. Další informace najdete v tématu Spuštění produkčních imagí kontejneru.
Následující tabulka obsahuje popis parametrů v předchozím docker run
příkladu:
Parametr | Popis |
---|---|
-e "ACCEPT_EULA=Y" |
Nastavte proměnnou ACCEPT_EULA na libovolnou hodnotu, abyste potvrdili přijetí licenční smlouvy End-User. Požadované nastavení pro image SQL Serveru. |
-e "MSSQL_SA_PASSWORD=<password>" |
Zadejte vlastní silné heslo, které má alespoň osm znaků a splňuje zásady hesel. Požadované nastavení pro image SQL Serveru. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Určete vlastní kolaci SQL Serveru místo výchozího SQL_Latin1_General_CP1_CI_AS nastavení. |
-p 1433:1433 |
Namapujte port TCP v hostitelském prostředí (první hodnota) s portem TCP v kontejneru (druhá hodnota). V tomto příkladu naslouchá SQL Server na portu TCP 1433 v kontejneru a tento port kontejneru se pak zobrazí na portu TCP 1433 na hostiteli. |
--name sql1 |
Místo náhodně generovaného kontejneru zadejte vlastní název kontejneru. Pokud spustíte více než jeden kontejner, nemůžete tento stejný název znovu použít. |
--hostname sql1 |
Slouží k explicitní nastavení názvu hostitele kontejneru. Pokud nezadáte název hostitele, nastaví se jako výchozí ID kontejneru, což je náhodně vygenerovaný systémový identifikátor GUID. |
-d |
Spusťte kontejner na pozadí (démon). |
mcr.microsoft.com/mssql/server:2017-latest |
Image kontejneru SQL Serveru s Linuxem. |
Zobrazení seznamu kontejnerů
Pokud chcete zobrazit kontejnery Dockeru
docker ps
, použijte příkaz.sudo docker ps -a
docker ps -a
docker ps -a
Měl by se zobrazit výstup podobný následujícímu příkladu:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2017-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1
Pokud sloupec
STATUS
zobrazuje stavUp
, sql Server běží v kontejneru a naslouchá na portu zadaném ve sloupciPORTS
. Pokud sloupecSTATUS
v kontejneru pro SQL Server zobrazujeExited
, podívejte se na Řešení potíží s kontejnery Dockeru SQL Serveru. Server je připravený pro připojení, jakmile protokoly chyb SQL Serveru zobrazí zprávu:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Protokol chyb SQL Serveru v kontejneru můžete zkontrolovat pomocí příkazu:sudo docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Parametr
--hostname
, jak jsme už probírali, změní interní název kontejneru na vlastní hodnotu. Tato hodnota je název, který se zobrazí v následujícím dotazu Transact-SQL:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Nastavení
--hostname
a--name
stejná hodnota je dobrým způsobem, jak snadno identifikovat cílový kontejner.Jako poslední krok změňte heslo SA v produkčním prostředí, protože
MSSQL_SA_PASSWORD
je viditelný veps -eax
výstupu a uložený v proměnné prostředí se stejným názvem.
Vyžádání a spuštění image kontejneru SQL Serveru s Linuxem
Před zahájením následujících kroků se ujistěte, že jste v horní části tohoto článku vybrali upřednostňované prostředí (Bash, PowerShell nebo cmd).
Pro příkazy Bash v tomto článku se sudo
používá. Pokud nechcete používat sudo
ke spuštění Dockeru, můžete nakonfigurovat docker
skupinu a přidat do této skupiny uživatele. Další informace najdete v části Kroky po instalaci pro Linux.
Stáhněte kontejner z registru
Stáhněte image kontejneru SQL Serveru 2019 (15.x) z Registru Microsoft Container.
docker pull mcr.microsoft.com/mssql/server:2019-latest
docker pull mcr.microsoft.com/mssql/server:2019-latest
docker pull mcr.microsoft.com/mssql/server:2019-latest
Tento rychlý start vytvoří kontejnery SQL Serveru 2019 (15.x). Pokud chcete vytvořit kontejnery Linuxu pro různé verze SQL Serveru, přečtěte si téma:
Předchozí příkaz stáhne nejnovější image kontejneru pro SQL Server 2019 (15.x) na Linux. Pokud chcete načíst konkrétní obrázek, přidejte dvojtečku a název značky, například mcr.microsoft.com/mssql/server:2019-GA-ubuntu
. Pokud chcete zobrazit všechny dostupné image, podívejte se na Microsoft Artifact Registry.
Spuštění kontejneru
Ke spuštění image kontejneru Linuxu s Dockerem můžete použít následující příkaz z prostředí Bash nebo příkazového řádku PowerShellu se zvýšenými oprávněními.
Důležité
Proměnná prostředí SA_PASSWORD
se již nepoužívá. Místo toho použijte MSSQL_SA_PASSWORD
.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2019-latest
Pokud používáte PowerShell Core, nahraďte dvojité uvozovky jednoduchými uvozovkami.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2019-latest
Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2019-latest
Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá. Pokud tyto požadavky na heslo nedodržujete, kontejner nemůže nastavit SQL Server a přestane fungovat. Protokol chyb můžete prozkoumat pomocí docker logs
příkazu.
Ve výchozím nastavení tento rychlý start vytvoří kontejner s edicí Developer SQL Serveru. Proces spouštění produkčních edicí v kontejnerech se mírně liší. Další informace najdete v tématu Spuštění produkčních imagí kontejneru.
Následující tabulka obsahuje popis parametrů v předchozím docker run
příkladu:
Parametr | Popis |
---|---|
-e "ACCEPT_EULA=Y" |
Nastavte proměnnou ACCEPT_EULA na libovolnou hodnotu, abyste potvrdili přijetí licenční smlouvy End-User. Požadované nastavení pro image SQL Serveru. |
-e "MSSQL_SA_PASSWORD=<password>" |
Zadejte vlastní silné heslo, které má alespoň osm znaků a splňuje zásady hesel. Požadované nastavení pro image SQL Serveru. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Určete vlastní kolaci SQL Serveru místo výchozího SQL_Latin1_General_CP1_CI_AS nastavení. |
-p 1433:1433 |
Namapujte port TCP v hostitelském prostředí (první hodnota) s portem TCP v kontejneru (druhá hodnota). V tomto příkladu naslouchá SQL Server na portu TCP 1433 v kontejneru a tento port kontejneru se pak zobrazí na portu TCP 1433 na hostiteli. |
--name sql1 |
Místo náhodně generovaného kontejneru zadejte vlastní název kontejneru. Pokud spustíte více než jeden kontejner, nemůžete tento stejný název znovu použít. |
--hostname sql1 |
Slouží k explicitní nastavení názvu hostitele kontejneru. Pokud nezadáte název hostitele, nastaví se jako výchozí ID kontejneru, což je náhodně vygenerovaný systémový identifikátor GUID. |
-d |
Spusťte kontejner na pozadí (démon). |
mcr.microsoft.com/mssql/server:2019-latest |
Image kontejneru SQL Serveru s Linuxem. |
Zobrazení seznamu kontejnerů
Pokud chcete zobrazit kontejnery Dockeru
docker ps
, použijte příkaz.docker ps -a
docker ps -a
docker ps -a
Měl by se zobrazit výstup podobný následujícímu příkladu:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1
Pokud sloupec
STATUS
zobrazuje stavUp
, sql Server běží v kontejneru a naslouchá na portu zadaném ve sloupciPORTS
. Pokud sloupecSTATUS
v kontejneru pro SQL Server zobrazujeExited
, podívejte se na Řešení potíží s kontejnery Dockeru SQL Serveru. Server je připravený pro připojení, jakmile protokoly chyb SQL Serveru zobrazí zprávu:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Protokol chyb SQL Serveru v kontejneru můžete zkontrolovat pomocí příkazu:docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Parametr
--hostname
, jak jsme už probírali, změní interní název kontejneru na vlastní hodnotu. Tato hodnota je název, který se zobrazí v následujícím dotazu Transact-SQL:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Nastavení
--hostname
a--name
stejná hodnota je dobrým způsobem, jak snadno identifikovat cílový kontejner.Jako poslední krok změňte heslo SA v produkčním prostředí, protože
MSSQL_SA_PASSWORD
je viditelný veps -eax
výstupu a uložený v proměnné prostředí se stejným názvem.
Vyžádání a spuštění image kontejneru SQL Serveru s Linuxem
Před zahájením následujících kroků se ujistěte, že jste v horní části tohoto článku vybrali upřednostňované prostředí (Bash, PowerShell nebo cmd).
Pro příkazy Bash v tomto článku se sudo
používá. Pokud nechcete používat sudo
ke spuštění Dockeru, můžete nakonfigurovat docker
skupinu a přidat do této skupiny uživatele. Další informace najdete v části Kroky po instalaci pro Linux.
Stažení image kontejneru z registru
Stáhněte image kontejneru SQL Serveru 2022 (16.x) Linux z registru kontejneru Microsoft Container Registry.
docker pull mcr.microsoft.com/mssql/server:2022-latest
docker pull mcr.microsoft.com/mssql/server:2022-latest
docker pull mcr.microsoft.com/mssql/server:2022-latest
Tento rychlý start vytvoří kontejnery SQL Serveru 2022 (16.x). Pokud chcete vytvořit kontejnery Linuxu pro různé verze SQL Serveru, přečtěte si téma:
Předchozí příkaz načte nejnovější image kontejneru SQL Serveru 2022 (16.x). Pokud chcete načíst konkrétní obrázek, přidejte dvojtečku a název značky, například mcr.microsoft.com/mssql/server:2022-GA-ubuntu
. Pokud chcete zobrazit všechny dostupné image, podívejte se na Microsoft Artifact Registry.
Spuštění kontejneru
Ke spuštění image kontejneru Linuxu s Dockerem můžete použít následující příkaz z prostředí Bash nebo příkazového řádku PowerShellu se zvýšenými oprávněními.
Důležité
Proměnná prostředí SA_PASSWORD
se již nepoužívá. Místo toho použijte MSSQL_SA_PASSWORD
.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2022-latest
Pokud používáte PowerShell Core, nahraďte dvojité uvozovky jednoduchými uvozovkami.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2022-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2022-latest
Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá. Pokud tyto požadavky na heslo nedodržujete, kontejner nemůže nastavit SQL Server a přestane fungovat. Protokol chyb můžete prozkoumat pomocí docker logs
příkazu.
Ve výchozím nastavení tento rychlý start vytvoří kontejner s edicí Developer SQL Serveru. Proces spouštění produkčních edicí v kontejnerech se mírně liší. Další informace najdete v tématu Spuštění produkčních imagí kontejneru.
Následující tabulka obsahuje popis parametrů v předchozím docker run
příkladu:
Parametr | Popis |
---|---|
-e "ACCEPT_EULA=Y" |
Nastavte proměnnou ACCEPT_EULA na libovolnou hodnotu, abyste potvrdili přijetí licenční smlouvy End-User. Požadované nastavení pro image SQL Serveru. |
-e "MSSQL_SA_PASSWORD=<password>" |
Zadejte vlastní silné heslo, které má alespoň osm znaků a splňuje zásady hesel. Požadované nastavení pro image SQL Serveru. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Určete vlastní kolaci SQL Serveru místo výchozího SQL_Latin1_General_CP1_CI_AS nastavení. |
-p 1433:1433 |
Namapujte port TCP v hostitelském prostředí (první hodnota) s portem TCP v kontejneru (druhá hodnota). V tomto příkladu naslouchá SQL Server na portu TCP 1433 v kontejneru a tento port kontejneru se pak zobrazí na portu TCP 1433 na hostiteli. |
--name sql1 |
Místo náhodně generovaného kontejneru zadejte vlastní název kontejneru. Pokud spustíte více než jeden kontejner, nemůžete tento stejný název znovu použít. |
--hostname sql1 |
Slouží k explicitní nastavení názvu hostitele kontejneru. Pokud nezadáte název hostitele, nastaví se jako výchozí ID kontejneru, což je náhodně vygenerovaný systémový identifikátor GUID. |
-d |
Spusťte kontejner na pozadí (démon). |
mcr.microsoft.com/mssql/server:2022-latest |
Image kontejneru SQL Serveru s Linuxem. |
Změna hesla správce systému
Účet správce systému (sa
) je správce systému v instanci SQL Serveru, která se vytvoří během instalace. Po vytvoření kontejneru SQL Serveru je proměnná prostředí MSSQL_SA_PASSWORD
, kterou jste zadali, zjistitelná spuštěním echo $MSSQL_SA_PASSWORD
v kontejneru. Pro účely zabezpečení byste měli změnit sa
heslo v produkčním prostředí.
Zvolte silné heslo, které se má použít pro účet
sa
. Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.Slouží
docker exec
ke spuštění sqlcmd ke změně hesla pomocí jazyka Transact-SQL. V následujícím příkladu se stará a nová hesla čtou ze vstupu uživatele.docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa \ -P "$(read -sp "Enter current SA password: "; echo "${REPLY}")" \ -Q "ALTER LOGIN sa WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd ` -S localhost -U sa -P "<password>" ` -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd ` -S localhost -U sa -P "<password>" ` -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Nejnovější verze sqlcmd jsou ve výchozím nastavení zabezpečené. Další informace o šifrování připojení najdete v tématu nástroj sqlcmd pro Windows a Připojení pomocí sqlcmd pro Linux a macOS. Pokud připojení neproběhne úspěšně, můžete přidat možnost
-No
sqlcmd a určit, že šifrování není povinné.
Zakázání účtu SA jako osvědčený postup
Důležité
Tyto přihlašovací údaje budete potřebovat pro pozdější kroky. Nezapomeňte si sem zapsat ID uživatele a heslo, které tady zadáte.
Když se poprvé po instalaci připojíte k instanci SQL Serveru pomocí účtu správce systému (sa
), je důležité postupovat podle těchto kroků a okamžitě zakázat účet sa
jako osvědčený postup zabezpečení.
Vytvořte nové přihlášení a nastavte ho jako člena role serveru správce systému.
V závislosti na tom, jestli máte kontejner nebo nasazení bez kontejneru, povolte ověřování systému Windows a vytvořte nové přihlášení založené na Systému Windows a přidejte ho do role serveru správce systému.
V opačném případě vytvořte přihlášení pomocí ověřování SQL Serveru a přidejte ho do role serveru správce systému.
Připojte se k instanci SQL Serveru pomocí nového přihlášení, které jste vytvořili.
Podle doporučení k osvědčeným postupům zabezpečení zakažte
sa
účet.
Zobrazení seznamu kontejnerů
Pokud chcete zobrazit kontejnery Dockeru
docker ps
, použijte příkaz.docker ps -a
docker ps -a
docker ps -a
Měl by se zobrazit výstup podobný následujícímu příkladu:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2022-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1
Pokud sloupec
STATUS
zobrazuje stavUp
, sql Server běží v kontejneru a naslouchá na portu zadaném ve sloupciPORTS
. Pokud sloupecSTATUS
v kontejneru pro SQL Server zobrazujeExited
, podívejte se na Řešení potíží s kontejnery Dockeru SQL Serveru. Server je připravený pro připojení, jakmile protokoly chyb SQL Serveru zobrazí zprávu:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Protokol chyb SQL Serveru v kontejneru můžete zkontrolovat pomocí příkazu:docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Parametr
--hostname
, jak jsme už probírali, změní interní název kontejneru na vlastní hodnotu. Tato hodnota je název, který se zobrazí v následujícím dotazu Transact-SQL:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Nastavení
--hostname
a--name
stejná hodnota je dobrým způsobem, jak snadno identifikovat cílový kontejner.
Vyžádání a spuštění image kontejneru SQL Serveru s Linuxem
Před zahájením následujících kroků se ujistěte, že jste v horní části tohoto článku vybrali upřednostňované prostředí (Bash, PowerShell nebo cmd).
Pro příkazy Bash v tomto článku se sudo
používá. Pokud nechcete používat sudo
ke spuštění Dockeru, můžete nakonfigurovat docker
skupinu a přidat do této skupiny uživatele. Další informace najdete v části Kroky po instalaci pro Linux.
Stažení image kontejneru z registru
Stáhněte kontejnerový image SQL Serveru 2025 (17.x) Preview ze služby Microsoft Container Registry.
docker pull mcr.microsoft.com/mssql/server:2025-latest
docker pull mcr.microsoft.com/mssql/server:2025-latest
docker pull mcr.microsoft.com/mssql/server:2025-latest
Tento rychlý start vytvoří kontejnery SQL Serveru 2025 (17.x) Preview. Pokud chcete vytvořit kontejnery Linuxu pro různé verze SQL Serveru, přečtěte si téma:
Předchozí příkaz stáhne nejnovější image kontejneru verze Preview SQL Serveru 2025 (17.x). Pokud chcete načíst konkrétní obrázek, přidejte dvojtečku a název značky, například mcr.microsoft.com/mssql/server:2025-GA-ubuntu
. Pokud chcete zobrazit všechny dostupné image, podívejte se na Microsoft Artifact Registry.
Spuštění kontejneru
Ke spuštění image kontejneru Linuxu s Dockerem můžete použít následující příkaz z prostředí Bash nebo příkazového řádku PowerShellu se zvýšenými oprávněními.
Důležité
Proměnná prostředí SA_PASSWORD
se již nepoužívá. Místo toho použijte MSSQL_SA_PASSWORD
.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-p 1433:1433 --name sql1 --hostname sql1 \
-d \
mcr.microsoft.com/mssql/server:2025-latest
Pokud používáte PowerShell Core, nahraďte dvojité uvozovky jednoduchými uvozovkami.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2025-latest
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" `
-p 1433:1433 --name sql1 --hostname sql1 `
-d `
mcr.microsoft.com/mssql/server:2025-latest
Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá. Pokud tyto požadavky na heslo nedodržujete, kontejner nemůže nastavit SQL Server a přestane fungovat. Protokol chyb můžete prozkoumat pomocí docker logs
příkazu.
Ve výchozím nastavení tento rychlý start vytvoří kontejner s edicí Developer SQL Serveru. Proces spouštění produkčních edicí v kontejnerech se mírně liší. Další informace najdete v tématu Spuštění produkčních imagí kontejneru.
Následující tabulka obsahuje popis parametrů v předchozím docker run
příkladu:
Parametr | Popis |
---|---|
-e "ACCEPT_EULA=Y" |
Nastavte proměnnou ACCEPT_EULA na libovolnou hodnotu, abyste potvrdili přijetí licenční smlouvy End-User. Požadované nastavení pro image SQL Serveru. |
-e "MSSQL_SA_PASSWORD=<password>" |
Zadejte vlastní silné heslo, které má alespoň osm znaků a splňuje zásady hesel. Požadované nastavení pro image SQL Serveru. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Určete vlastní kolaci SQL Serveru místo výchozího SQL_Latin1_General_CP1_CI_AS nastavení. |
-p 1433:1433 |
Namapujte port TCP v hostitelském prostředí (první hodnota) s portem TCP v kontejneru (druhá hodnota). V tomto příkladu naslouchá SQL Server na portu TCP 1433 v kontejneru a tento port kontejneru se pak zobrazí na portu TCP 1433 na hostiteli. |
--name sql1 |
Místo náhodně generovaného kontejneru zadejte vlastní název kontejneru. Pokud spustíte více než jeden kontejner, nemůžete tento stejný název znovu použít. |
--hostname sql1 |
Slouží k explicitní nastavení názvu hostitele kontejneru. Pokud nezadáte název hostitele, nastaví se jako výchozí ID kontejneru, což je náhodně vygenerovaný systémový identifikátor GUID. |
-d |
Spusťte kontejner na pozadí (démon). |
mcr.microsoft.com/mssql/server:2025-latest |
Image kontejneru SQL Serveru s Linuxem. |
Změna hesla správce systému
Účet správce systému (sa
) je správce systému v instanci SQL Serveru, která se vytvoří během instalace. Po vytvoření kontejneru SQL Serveru je proměnná prostředí MSSQL_SA_PASSWORD
, kterou jste zadali, zjistitelná spuštěním echo $MSSQL_SA_PASSWORD
v kontejneru. Pro účely zabezpečení byste měli změnit sa
heslo v produkčním prostředí.
Zvolte silné heslo, které se má použít pro účet
sa
. Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.Slouží
docker exec
ke spuštění sqlcmd ke změně hesla pomocí jazyka Transact-SQL. V následujícím příkladu se stará a nová hesla čtou ze vstupu uživatele.docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa \ -P "$(read -sp "Enter current SA password: "; echo "${REPLY}")" \ -Q "ALTER LOGIN sa WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd ` -S localhost -U sa -P "<password>" ` -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd ` -S localhost -U sa -P "<password>" ` -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Nejnovější verze sqlcmd jsou ve výchozím nastavení zabezpečené. Další informace o šifrování připojení najdete v tématu nástroj sqlcmd pro Windows a Připojení pomocí sqlcmd pro Linux a macOS. Pokud připojení neproběhne úspěšně, můžete přidat možnost
-No
sqlcmd a určit, že šifrování není povinné.
Zakázání účtu SA jako osvědčený postup
Důležité
Tyto přihlašovací údaje budete potřebovat pro pozdější kroky. Nezapomeňte si sem zapsat ID uživatele a heslo, které tady zadáte.
Když se poprvé po instalaci připojíte k instanci SQL Serveru pomocí účtu správce systému (sa
), je důležité postupovat podle těchto kroků a okamžitě zakázat účet sa
jako osvědčený postup zabezpečení.
Vytvořte nové přihlášení a nastavte ho jako člena role serveru správce systému.
V závislosti na tom, jestli máte kontejner nebo nasazení bez kontejneru, povolte ověřování systému Windows a vytvořte nové přihlášení založené na Systému Windows a přidejte ho do role serveru správce systému.
V opačném případě vytvořte přihlášení pomocí ověřování SQL Serveru a přidejte ho do role serveru správce systému.
Připojte se k instanci SQL Serveru pomocí nového přihlášení, které jste vytvořili.
Podle doporučení k osvědčeným postupům zabezpečení zakažte
sa
účet.
Zobrazení seznamu kontejnerů
Pokud chcete zobrazit kontejnery Dockeru
docker ps
, použijte příkaz.docker ps -a
docker ps -a
docker ps -a
Měl by se zobrazit výstup podobný následujícímu příkladu:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2025-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1
Pokud sloupec
STATUS
zobrazuje stavUp
, sql Server běží v kontejneru a naslouchá na portu zadaném ve sloupciPORTS
. Pokud sloupecSTATUS
v kontejneru pro SQL Server zobrazujeExited
, podívejte se na Řešení potíží s kontejnery Dockeru SQL Serveru. Server je připravený pro připojení, jakmile protokoly chyb SQL Serveru zobrazí zprávu:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Protokol chyb SQL Serveru v kontejneru můžete zkontrolovat pomocí příkazu:docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Parametr
--hostname
, jak jsme už probírali, změní interní název kontejneru na vlastní hodnotu. Tato hodnota je název, který se zobrazí v následujícím dotazu Transact-SQL:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Nastavení
--hostname
a--name
stejná hodnota je dobrým způsobem, jak snadno identifikovat cílový kontejner.
Připojení k SQL Serveru
Následující kroky používají nástroj příkazového řádku SQL Serveru, nástroj sqlcmd v kontejneru pro připojení k SQL Serveru.
Pomocí příkazu
docker exec -it
spusťte interaktivní prostředí Bash uvnitř spuštěného kontejneru. V následujícím příkladusql1
je název zadaný parametrem--name
při vytváření kontejneru.docker exec -it sql1 "bash"
docker exec -it sql1 "bash"
docker exec -it sql1 "bash"
Jakmile jste uvnitř kontejneru, připojte se místně pomocí sqlcmd při použití jeho úplné cesty.
/opt/mssql-tools/bin/sqlcmd -S localhost -U <userid> -P "<password>"
Nejnovější verze sqlcmd jsou ve výchozím nastavení zabezpečené. Další informace o šifrování připojení najdete v tématu nástroj sqlcmd pro Windows a Připojení pomocí sqlcmd pro Linux a macOS. Pokud připojení neproběhne úspěšně, můžete přidat možnost
-No
sqlcmd a určit, že šifrování není povinné.Heslo na příkazovém řádku můžete vynechat, aby se zobrazila výzva k jeho zadání. Například:
/opt/mssql-tools/bin/sqlcmd -S localhost -U <userid>
Jakmile jste uvnitř kontejneru, připojte se místně pomocí sqlcmd při použití jeho úplné cesty.
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<password>"
Nejnovější verze sqlcmd jsou ve výchozím nastavení zabezpečené. Další informace o šifrování připojení najdete v tématu nástroj sqlcmd pro Windows a Připojení pomocí sqlcmd pro Linux a macOS. Pokud připojení neproběhne úspěšně, můžete přidat možnost
-No
sqlcmd a určit, že šifrování není povinné.Heslo na příkazovém řádku můžete vynechat, aby se zobrazila výzva k jeho zadání. Například:
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid>
- V případě úspěchu byste se měli dostat se k sqlcmd příkazovému řádku:
1>
.
Vytvoření a dotazování dat
Následující části vás provedou použitím sqlcmd a Transact-SQL k vytvoření nové databáze, přidání dat a spuštění dotazu.
Vytvoření nové databáze
Následující kroky vytvoří novou databázi s názvem TestDB
.
Z příkazového řádku sqlcmd vložte následující příkaz Transact-SQL k vytvoření testovací databáze:
CREATE DATABASE TestDB;
Na dalším řádku napište dotaz, který vrátí název všech databází na vašem serveru:
SELECT name FROM sys.databases;
Předchozí dva příkazy nebyly spuštěny okamžitě. Zadejte
GO
na nový řádek pro spuštění předchozích příkazů.GO
Vložení dat
Dále vytvořte novou tabulku, Inventory
a vložte dva nové řádky.
Z příkazového řádku sqlcmd přepněte kontext na novou databázi
TestDB
:USE TestDB;
Vytvořte novou tabulku s názvem
Inventory
:CREATE TABLE Inventory ( id INT, name NVARCHAR (50), quantity INT );
Vložte data do nové tabulky:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
Zadejte
GO
, aby se spustily předchozí příkazy:GO
Výběr dat
Teď spusťte dotaz, který vrátí data z tabulky Inventory
.
Na příkazovém řádku sqlcmd zadejte dotaz, který vrátí řádky z tabulky
Inventory
, kde je množství větší než 152:SELECT * FROM Inventory WHERE quantity > 152;
Spusťte příkaz:
GO
Ukončete příkazovou řádku sqlcmd.
Chcete-li ukončit relaci sqlcmd, zadejte
QUIT
:QUIT
Chcete-li ukončit interaktivní příkazový řádek v kontejneru, zadejte
exit
. Kontejner se bude dál spouštět po ukončení interaktivního prostředí Bash.
Připojení mimo kontejner
K instanci SQL Serveru na počítači Dockeru se také můžete připojit z libovolného externího nástroje pro Linux, Windows nebo macOS, který podporuje připojení SQL. Externí nástroj používá IP adresu hostitelského počítače.
Následující kroky používají sqlcmd mimo kontejner pro připojení k SQL Serveru spuštěného v kontejneru. Tyto kroky předpokládají, že už máte nainstalované nástroje příkazového řádku SQL Serveru mimo kontejner. Stejné principy platí i při používání jiných nástrojů, ale proces připojení je pro každý nástroj jedinečný.
Najděte IP adresu hostitelského počítače kontejneru pomocí
ifconfig
neboip addr
.V tomto příkladu nainstalujte nástroj sqlcmd na klientský počítač. Další informace najdete v nástroji sqlcmd nebo instalaci nástrojů příkazového řádku sqlcmd a bcp SQL Serveru v Linuxu.
Spusťte sqlcmd určující IP adresu a port namapovaný na port 1433 v kontejneru. V tomto příkladu je port stejný jako port 1433 na hostitelském počítači. Pokud jste na hostitelském počítači zadali jiný mapovaný port, použili byste ho tady. Aby bylo možné připojení povolit, musíte také otevřít příslušný příchozí port na bráně firewall.
Nejnovější verze sqlcmd jsou ve výchozím nastavení zabezpečené. Pokud připojení není úspěšné a používáte verzi 18 nebo vyšší, můžete přidat
-No
možnost sqlcmd a určit, že šifrování není povinné.sudo sqlcmd -S <ip_address>,1433 -U <userid> -P "<password>"
sqlcmd -S <ip_address>,1433 -U <userid> -P "<password>"
sqlcmd -S <ip_address>,1433 -U <userid> -P "<password>"
Upozornění
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Spusťte příkazy Transact-SQL. Po dokončení zadejte
QUIT
.
Mezi další běžné nástroje pro připojení k SQL Serveru patří:
- rozšíření SQL Serveru pro Visual Studio Code
- Použití aplikace SQL Server Management Studio ve Windows ke správě SQL Serveru v Linuxu
- Co je Azure Data Studio?
- mssql-cli (Předběžná verze)
- Použití PowerShellu v Linuxu ke správě SQL Serveru v Linuxu
Odebrání kontejneru
Pokud chcete odebrat kontejner SQL Serveru použitý v tomto kurzu, spusťte následující příkazy:
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
Ukázka Dockeru
Po dokončení používání image kontejneru SQL Serveru pro Docker možná budete chtít vědět, jak se Docker používá ke zlepšení vývoje a testování. Následující video ukazuje, jak se Dá Docker používat ve scénáři kontinuální integrace a nasazování.
Související úkoly
Související obsah
- Obnovení databáze SQL Serveru v kontejneru Linuxu
- řešení potíží s kontejnery Dockeru SQL Serveru
- Úložiště mssql-docker Na GitHubu
Přispějte k dokumentaci SQL
Věděli jste, že obsah SQL můžete upravovat sami? Pokud to uděláte, nejen že vám pomůžete vylepšit naši dokumentaci, ale také jste získali kredit jako přispěvatel na stránku.
Další informace naleznete v Upravit dokumentaci Microsoft Learn.