Sdílet prostřednictvím


Rychlý start: Spuštění imagí kontejneru SQL Serveru s Linuxem pomocí Dockeru

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/binv 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.

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ů

  1. 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
    
  2. Pokud sloupec STATUS zobrazuje stav Up, sql Server běží v kontejneru a naslouchá na portu zadaném ve sloupci PORTS. Pokud sloupec STATUS v kontejneru pro SQL Server zobrazuje Exited, 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.

  3. Jako poslední krok změňte heslo SA v produkčním prostředí, protože MSSQL_SA_PASSWORD je viditelný ve ps -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ů

  1. 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
    
  2. Pokud sloupec STATUS zobrazuje stav Up, sql Server běží v kontejneru a naslouchá na portu zadaném ve sloupci PORTS. Pokud sloupec STATUS v kontejneru pro SQL Server zobrazuje Exited, 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.

  3. Jako poslední krok změňte heslo SA v produkčním prostředí, protože MSSQL_SA_PASSWORD je viditelný ve ps -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í.

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

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

  1. Vytvořte nové přihlášení a nastavte ho jako člena role serveru správce systému.

  2. Připojte se k instanci SQL Serveru pomocí nového přihlášení, které jste vytvořili.

  3. Podle doporučení k osvědčeným postupům zabezpečení zakažte sa účet.

Zobrazení seznamu kontejnerů

  1. 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
    
  2. Pokud sloupec STATUS zobrazuje stav Up, sql Server běží v kontejneru a naslouchá na portu zadaném ve sloupci PORTS. Pokud sloupec STATUS v kontejneru pro SQL Server zobrazuje Exited, 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í.

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

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

  1. Vytvořte nové přihlášení a nastavte ho jako člena role serveru správce systému.

  2. Připojte se k instanci SQL Serveru pomocí nového přihlášení, které jste vytvořili.

  3. Podle doporučení k osvědčeným postupům zabezpečení zakažte sa účet.

Zobrazení seznamu kontejnerů

  1. 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
    
  2. Pokud sloupec STATUS zobrazuje stav Up, sql Server běží v kontejneru a naslouchá na portu zadaném ve sloupci PORTS. Pokud sloupec STATUS v kontejneru pro SQL Server zobrazuje Exited, 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.

  1. Pomocí příkazu docker exec -it spusťte interaktivní prostředí Bash uvnitř spuštěného kontejneru. V následujícím příkladu sql1 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"
    
  1. 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>
    
  1. 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>
    
  1. 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.

  1. Z příkazového řádku sqlcmd vložte následující příkaz Transact-SQL k vytvoření testovací databáze:

    CREATE DATABASE TestDB;
    
  2. 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;
    
  3. 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, Inventorya vložte dva nové řádky.

  1. Z příkazového řádku sqlcmd přepněte kontext na novou databázi TestDB:

    USE TestDB;
    
  2. Vytvořte novou tabulku s názvem Inventory:

    CREATE TABLE Inventory
    (
        id INT,
        name NVARCHAR (50),
        quantity INT
    );
    
  3. Vložte data do nové tabulky:

    INSERT INTO Inventory
    VALUES (1, 'banana', 150);
    
    INSERT INTO Inventory
    VALUES (2, 'orange', 154);
    
  4. 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.

  1. 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;
    
  2. Spusťte příkaz:

    GO
    

Ukončete příkazovou řádku sqlcmd.

  1. Chcete-li ukončit relaci sqlcmd, zadejte QUIT:

    QUIT
    
  2. 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ý.

  1. Najděte IP adresu hostitelského počítače kontejneru pomocí ifconfig nebo ip addr.

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

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

  4. Spusťte příkazy Transact-SQL. Po dokončení zadejte QUIT.

Mezi další běžné nástroje pro připojení k SQL Serveru patří:

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

 

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.