Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server – Linux
I den här snabbstarten använder du Docker för att hämta och köra LINUX-containeravbildningen SQL Server 2017 (14.x), mssql-server-linux. Sedan kan du ansluta med sqlcmd för att skapa din första databas och köra frågor.
Mer information om plattformar som stöds finns i Versionsinformation för SQL Server 2017 på Linux.
Varning
När du stoppar och tar bort en container tas DINA SQL Server-data i containern bort permanent. Om du vill ha mer information om hur du bevarar dina data skapar och kopierar du en säkerhetskopia från containern eller använder en beständighetsteknik för containerdata.
Den här snabbstarten skapar SQL Server 2017-containrar (14.x). Om du föredrar att skapa Linux-containrar för olika versioner av SQL Server kan du läsa:
I den här snabbstarten använder du Docker för att hämta och köra LINUX-containeravbildningen SQL Server 2019 (15.x), mssql-server-linux. Sedan kan du ansluta med sqlcmd för att skapa din första databas och köra frågor.
Mer information om plattformar som stöds finns i Versionsinformation för SQL Server 2019 på Linux.
Varning
När du stoppar och tar bort en container tas DINA SQL Server-data i containern bort permanent. Om du vill ha mer information om hur du bevarar dina data skapar och kopierar du en säkerhetskopia från containern eller använder en beständighetsteknik för containerdata.
Den här snabbstarten skapar SQL Server 2019-containrar (15.x). Om du föredrar att skapa Linux-containrar för olika versioner av SQL Server kan du läsa:
I den här snabbstarten använder du Docker för att hämta och köra LINUX-containeravbildningen SQL Server 2022 (16.x), mssql-server-linux. Sedan kan du ansluta med sqlcmd för att skapa din första databas och köra frågor.
Mer information om stödda plattformar finns i Versionsinformation för SQL Server 2022 på Linux.
Varning
När du stoppar och tar bort en container tas DINA SQL Server-data i containern bort permanent. Om du vill ha mer information om hur du bevarar dina data skapar och kopierar du en säkerhetskopia från containern eller använder en beständighetsteknik för containerdata.
Den här snabbstarten skapar SQL Server 2022-containrar (16.x). Om du föredrar att skapa Linux-containrar för olika versioner av SQL Server kan du läsa:
I den här snabbstarten använder du Docker för att hämta och köra SQL Server 2025 (17.x) Förhandsversion av Linux-containeravbildning, mssql-server-linux. Sedan kan du ansluta med sqlcmd för att skapa din första databas och köra frågor.
Mer information om plattformar som stöds finns i Viktig information för förhandsversionen av SQL Server 2025 på Linux.
Varning
När du stoppar och tar bort en container tas DINA SQL Server-data i containern bort permanent. Om du vill ha mer information om hur du bevarar dina data skapar och kopierar du en säkerhetskopia från containern eller använder en beständighetsteknik för containerdata.
Den här snabbstarten skapar SQL Server 2025(17.x) förhandsversionscontainrar. Om du föredrar att skapa Linux-containrar för olika versioner av SQL Server kan du läsa:
Den här avbildningen består av SQL Server som körs på Linux baserat på Ubuntu. Den kan användas med Docker Engine 1.8+ i Linux.
Från och med SQL Server 2022 (16.x) CU 14 och SQL Server 2019 (15.x) CU 28 innehåller containeravbildningarna det nya paketet mssql-tools18 . Den tidigare katalogen /opt/mssql-tools/bin
håller på att fasas ut. Den nya katalogen för Microsoft ODBC 18-verktyg är /opt/mssql-tools18/bin
, i linje med det senaste verktygserbjudandet. Mer information om ändringar och säkerhetsförbättringar finns i ODBC Driver 18.0 for SQL Server Released (ODBC Driver 18.0 for SQL Server Released).
Exemplen i den här artikeln använder docker
kommandot . De flesta av dessa kommandon fungerar dock också med Podman. Podman tillhandahåller ett kommandoradsgränssnitt som liknar Docker-motorn. Du kan läsa mer om Podman.
Viktigt!
sqlcmd stöder för närvarande inte parametern MSSQL_PID
när containrar skapas. Om du använder sqlcmd-instruktionerna i den här snabbstarten skapar du en container med utvecklarversionen av SQL Server. Använd cli-instruktionerna (kommandoradsgränssnittet) för att skapa en container med valfri licens. Mer information finns i Distribuera och ansluta till SQL Server Linux-containrar.
Förutsättningar
- Docker Engine 1.8+ på alla Linux-distributioner som stöds. Mer information finns i Installera Docker.
- Mer information om maskinvarukrav och processorstöd finns i SQL Server 2016 och 2017: Maskinvaru- och programvarukrav
- Mer information om maskinvarukrav och processorstöd finns i SQL Server 2019: Maskinvaru- och programvarukrav
- Mer information om maskinvarukrav och processorstöd finns i SQL Server 2022: Maskinvaru- och programvarukrav
- Mer information om maskinvarukrav och processorstöd finns i SQL Server 2025 Preview: Maskinvaru- och programvarukrav
Docker-drivrutin för lagring
overlay2
. Den här drivrutinen är standard för de flesta användare. Om du inte använder den här lagringsprovidern och behöver ändra den kan du läsa anvisningarna och varningarna i Docker-dokumentationen för att konfigurera överlägg2.Installera senaste sqlcmd på din Docker-värd.
Minst 2 GB diskutrymme.
Minst 2 GB RAM-minne.
Hämta och kör SQL Server Linux-containeravbildningen
Innan du påbörjar följande steg måste du välja önskat gränssnitt (bash, PowerShell eller cmd) överst i den här artikeln.
För bash-kommandona i den här artikeln sudo
används. Om du inte vill använda sudo
för att köra Docker kan du konfigurera en docker
grupp och lägga till användare i den gruppen. Mer information finns i Steg efter installationen för Linux.
Hämta containeravbildningen från registret
Hämta LINUX-containeravbildningen SQL Server 2017 (14.x) från 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
Den här snabbstarten skapar SQL Server 2017-containrar (14.x). Om du föredrar att skapa Linux-containrar för olika versioner av SQL Server kan du läsa:
Föregående kommando hämtar den senaste LINUX-containeravbildningen för SQL Server 2017 (14.x). Om du vill hämta en specifik avbildning lägger du till ett kolon och taggnamnet, till exempel mcr.microsoft.com/mssql/server:2017-GA-ubuntu
. Information om hur du ser alla tillgängliga avbildningar finns i Microsoft Artifact Registry.
Starta containern
Om du vill köra Linux-containeravbildningen med Docker kan du använda följande kommando från ett bash-gränssnitt eller upphöjd PowerShell-kommandotolk.
Viktigt!
Miljövariabeln SA_PASSWORD
är inaktuell. Använd MSSQL_SA_PASSWORD
i stället.
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
Om du använder PowerShell Core ersätter du de dubbla citattecknarna med enkla citattecken.
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
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt. Om du inte följer dessa lösenordskrav kan containern inte konfigurera SQL Server och slutar fungera. Du kan undersöka felloggen med hjälp docker logs
av kommandot .
Som standard skapar den här snabbstarten en container med Utvecklarutgåvan av SQL Server. Processen för att köra produktionsutgåvor i containrar skiljer sig något åt. Mer information finns i Köra produktionscontaineravbildningar.
Följande tabell innehåller en beskrivning av parametrarna i föregående docker run
exempel:
Parameter | Beskrivning |
---|---|
-e "ACCEPT_EULA=Y" |
Ange variabeln ACCEPT_EULA till valfritt värde för att bekräfta att du godkänner End-User licensavtalet. Obligatorisk inställning för SQL Server-avbildningen. |
-e "MSSQL_SA_PASSWORD=<password>" |
Ange ett eget starkt lösenord som är minst åtta tecken och som uppfyller lösenordsprincipen. Obligatorisk inställning för SQL Server-avbildningen. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Ange en anpassad SQL Server-sortering istället för standard SQL_Latin1_General_CP1_CI_AS . |
-p 1433:1433 |
Mappa en TCP-port i värdmiljön (första värdet) med en TCP-port i containern (andra värdet). I det här exemplet lyssnar SQL Server på TCP-port 1433 i containern, och denna port exponeras sedan till TCP-port 1433 på värden. |
--name sql1 |
Ange ett anpassat namn för containern i stället för ett slumpmässigt genererat namn. Om du kör mer än en container kan du inte återanvända samma namn. |
--hostname sql1 |
Används för att uttryckligen ange containerns värdnamn. Om du inte anger värdnamnet används som standard container-ID, som är ett slumpmässigt genererat system-GUID. |
-d |
Kör containern i bakgrunden (daemon). |
mcr.microsoft.com/mssql/server:2017-latest |
SQL Server Linux-containeravbildningen. |
Visa lista över containrar
Om du vill visa dina Docker-containrar använder du
docker ps
kommandot .sudo docker ps -a
docker ps -a
docker ps -a
Du bör se utdata som liknar följande exempel:
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
Om kolumnen
STATUS
visar statusenUp
körs SQL Server i containern och lyssnar på porten som anges i kolumnenPORTS
. Om kolumnenSTATUS
för din SQL Server-container visarExited
, se Felsöka SQL Server Docker-containrar. Servern är redo för anslutningar när SQL Server-felloggarna visar meddelandet:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Du kan granska SQL Server-felloggen i containern med kommandot :sudo docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Parametern
--hostname
ändrar, som tidigare nämnts, containerns interna namn till ett anpassat värde. Det här värdet är det namn som returneras i följande Transact-SQL fråga:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Att ange
--hostname
och--name
till samma värde är ett bra sätt att enkelt identifiera målcontainern.Som ett sista steg ändrar du sa-lösenordet i en produktionsmiljö eftersom
MSSQL_SA_PASSWORD
är synligt ips -eax
utdata och lagras i miljövariabeln med samma namn.
Hämta och kör SQL Server Linux-containeravbildningen
Innan du påbörjar följande steg måste du välja önskat gränssnitt (bash, PowerShell eller cmd) överst i den här artikeln.
För bash-kommandona i den här artikeln sudo
används. Om du inte vill använda sudo
för att köra Docker kan du konfigurera en docker
grupp och lägga till användare i den gruppen. Mer information finns i Steg efter installationen för Linux.
Hämta containern från registret
Hämta LINUX-containeravbildningen SQL Server 2019 (15.x) från Microsoft Container Registry.
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
Den här snabbstarten skapar SQL Server 2019-containrar (15.x). Om du föredrar att skapa Linux-containrar för olika versioner av SQL Server kan du läsa:
Föregående kommando hämtar den senaste LINUX-containeravbildningen för SQL Server 2019 (15.x). Om du vill hämta en specifik avbildning lägger du till ett kolon och taggnamnet, till exempel mcr.microsoft.com/mssql/server:2019-GA-ubuntu
. Information om hur du ser alla tillgängliga avbildningar finns i Microsoft Artifact Registry.
Starta containern
Om du vill köra Linux-containeravbildningen med Docker kan du använda följande kommando från ett bash-gränssnitt eller upphöjd PowerShell-kommandotolk.
Viktigt!
Miljövariabeln SA_PASSWORD
är inaktuell. Använd MSSQL_SA_PASSWORD
i stället.
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
Om du använder PowerShell Core ersätter du de dubbla citattecknarna med enkla citattecken.
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
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
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
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt. Om du inte följer dessa lösenordskrav kan containern inte konfigurera SQL Server och slutar fungera. Du kan undersöka felloggen med hjälp docker logs
av kommandot .
Som standard skapar den här snabbstarten en container med Utvecklarutgåvan av SQL Server. Processen för att köra produktionsutgåvor i containrar skiljer sig något åt. Mer information finns i Köra produktionscontaineravbildningar.
Följande tabell innehåller en beskrivning av parametrarna i föregående docker run
exempel:
Parameter | Beskrivning |
---|---|
-e "ACCEPT_EULA=Y" |
Ange variabeln ACCEPT_EULA till valfritt värde för att bekräfta att du godkänner End-User licensavtalet. Obligatorisk inställning för SQL Server-avbildningen. |
-e "MSSQL_SA_PASSWORD=<password>" |
Ange ett eget starkt lösenord som är minst åtta tecken och som uppfyller lösenordsprincipen. Obligatorisk inställning för SQL Server-avbildningen. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Ange en anpassad SQL Server-sortering istället för standard SQL_Latin1_General_CP1_CI_AS . |
-p 1433:1433 |
Mappa en TCP-port i värdmiljön (första värdet) med en TCP-port i containern (andra värdet). I det här exemplet lyssnar SQL Server på TCP-port 1433 i containern, och denna port exponeras sedan till TCP-port 1433 på värden. |
--name sql1 |
Ange ett anpassat namn för containern i stället för ett slumpmässigt genererat namn. Om du kör mer än en container kan du inte återanvända samma namn. |
--hostname sql1 |
Används för att uttryckligen ange containerns värdnamn. Om du inte anger värdnamnet används som standard container-ID, som är ett slumpmässigt genererat system-GUID. |
-d |
Kör containern i bakgrunden (daemon). |
mcr.microsoft.com/mssql/server:2019-latest |
SQL Server Linux-containeravbildningen. |
Visa lista över containrar
Om du vill visa dina Docker-containrar använder du
docker ps
kommandot .docker ps -a
docker ps -a
docker ps -a
Du bör se utdata som liknar följande exempel:
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
Om kolumnen
STATUS
visar statusenUp
körs SQL Server i containern och lyssnar på porten som anges i kolumnenPORTS
. Om kolumnenSTATUS
för din SQL Server-container visarExited
, se Felsöka SQL Server Docker-containrar. Servern är redo för anslutningar när SQL Server-felloggarna visar meddelandet:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Du kan granska SQL Server-felloggen i containern med kommandot :docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Parametern
--hostname
ändrar, som tidigare nämnts, containerns interna namn till ett anpassat värde. Det här värdet är det namn som returneras i följande Transact-SQL fråga:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Att ange
--hostname
och--name
till samma värde är ett bra sätt att enkelt identifiera målcontainern.Som ett sista steg ändrar du sa-lösenordet i en produktionsmiljö eftersom
MSSQL_SA_PASSWORD
är synligt ips -eax
utdata och lagras i miljövariabeln med samma namn.
Hämta och kör SQL Server Linux-containeravbildningen
Innan du påbörjar följande steg måste du välja önskat gränssnitt (bash, PowerShell eller cmd) överst i den här artikeln.
För bash-kommandona i den här artikeln sudo
används. Om du inte vill använda sudo
för att köra Docker kan du konfigurera en docker
grupp och lägga till användare i den gruppen. Mer information finns i Steg efter installationen för Linux.
Hämta containeravbildningen från registret
Hämta LINUX-containeravbildningen SQL Server 2022 (16.x) från 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
Den här snabbstarten skapar SQL Server 2022-containrar (16.x). Om du föredrar att skapa Linux-containrar för olika versioner av SQL Server kan du läsa:
Föregående kommando hämtar den senaste LINUX-containeravbildningen för SQL Server 2022 (16.x). Om du vill hämta en specifik avbildning lägger du till ett kolon och taggnamnet, till exempel mcr.microsoft.com/mssql/server:2022-GA-ubuntu
. Information om hur du ser alla tillgängliga avbildningar finns i Microsoft Artifact Registry.
Starta containern
Om du vill köra Linux-containeravbildningen med Docker kan du använda följande kommando från ett bash-gränssnitt eller upphöjd PowerShell-kommandotolk.
Viktigt!
Miljövariabeln SA_PASSWORD
är inaktuell. Använd MSSQL_SA_PASSWORD
i stället.
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
Om du använder PowerShell Core ersätter du de dubbla citattecknarna med enkla citattecken.
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
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt. Om du inte följer dessa lösenordskrav kan containern inte konfigurera SQL Server och slutar fungera. Du kan undersöka felloggen med hjälp docker logs
av kommandot .
Som standard skapar den här snabbstarten en container med Utvecklarutgåvan av SQL Server. Processen för att köra produktionsutgåvor i containrar skiljer sig något åt. Mer information finns i Köra produktionscontaineravbildningar.
Följande tabell innehåller en beskrivning av parametrarna i föregående docker run
exempel:
Parameter | Beskrivning |
---|---|
-e "ACCEPT_EULA=Y" |
Ange variabeln ACCEPT_EULA till valfritt värde för att bekräfta att du godkänner End-User licensavtalet. Obligatorisk inställning för SQL Server-avbildningen. |
-e "MSSQL_SA_PASSWORD=<password>" |
Ange ett eget starkt lösenord som är minst åtta tecken och som uppfyller lösenordsprincipen. Obligatorisk inställning för SQL Server-avbildningen. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Ange en anpassad SQL Server-sortering istället för standard SQL_Latin1_General_CP1_CI_AS . |
-p 1433:1433 |
Mappa en TCP-port i värdmiljön (första värdet) med en TCP-port i containern (andra värdet). I det här exemplet lyssnar SQL Server på TCP-port 1433 i containern, och denna port exponeras sedan till TCP-port 1433 på värden. |
--name sql1 |
Ange ett anpassat namn för containern i stället för ett slumpmässigt genererat namn. Om du kör mer än en container kan du inte återanvända samma namn. |
--hostname sql1 |
Används för att uttryckligen ange containerns värdnamn. Om du inte anger värdnamnet används som standard container-ID, som är ett slumpmässigt genererat system-GUID. |
-d |
Kör containern i bakgrunden (daemon). |
mcr.microsoft.com/mssql/server:2022-latest |
SQL Server Linux-containeravbildningen. |
Ändra systemadministratörslösenordet
Systemadministratörskontot (sa
) är systemadministratör på SQL Server-instansen som skapas under installationen. När du har skapat din SQL Server-container kan du identifiera den MSSQL_SA_PASSWORD
miljövariabel som du angav genom att köra echo $MSSQL_SA_PASSWORD
i containern. I säkerhetssyfte bör du ändra lösenordet sa
i en produktionsmiljö.
Välj ett starkt lösenord som ska användas för
sa
-kontot. Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.Använd
docker exec
för att köra sqlcmd för att ändra lösenordet med Hjälp av Transact-SQL. I följande exempel läss de gamla och nya lösenorden från användarindata.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>'"
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
De senaste versionerna av sqlcmd är säkra som standard. Mer information om anslutningskryptering finns i sqlcmd-verktyg för Windows och Ansluta med sqlcmd- för Linux och macOS. Om anslutningen inte lyckas kan du lägga till alternativet
-No
i sqlcmd- för att ange att kryptering är valfritt, inte obligatoriskt.
Inaktivera SA-kontot som bästa praxis
Viktigt!
Du behöver dessa autentiseringsuppgifter för senare steg. Se till att skriva ned användar-ID och lösenord som du anger här.
När du ansluter till din SQL Server-instans med hjälp av systemadministratörskontot (sa
) för första gången efter installationen är det viktigt att du följer dessa steg och sedan omedelbart inaktiverar sa
-kontot som en metod för säkerhet.
Skapa en ny inloggning och gör den till medlem i sysadmin serverroll.
Beroende på om du har en container- eller icke-containerdistribution aktiverar du Windows-autentisering och skapar en ny Windows-baserad inloggning och lägger till den i sysadmin-serverrollen.
Annars skapar du en inloggning med SQL Server-autentisering och lägger till den i sysadmin serverroll.
Anslut till SQL Server-instansen med den nya inloggningen som du skapade.
Inaktivera det
sa
kontot, vilket rekommenderas för bästa praxis för säkerhet.
Visa lista över containrar
Om du vill visa dina Docker-containrar använder du
docker ps
kommandot .docker ps -a
docker ps -a
docker ps -a
Du bör se utdata som liknar följande exempel:
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
Om kolumnen
STATUS
visar statusenUp
körs SQL Server i containern och lyssnar på porten som anges i kolumnenPORTS
. Om kolumnenSTATUS
för din SQL Server-container visarExited
, se Felsöka SQL Server Docker-containrar. Servern är redo för anslutningar när SQL Server-felloggarna visar meddelandet:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Du kan granska SQL Server-felloggen i containern med kommandot :docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Parametern
--hostname
ändrar, som tidigare nämnts, containerns interna namn till ett anpassat värde. Det här värdet är det namn som returneras i följande Transact-SQL fråga:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Att ange
--hostname
och--name
till samma värde är ett bra sätt att enkelt identifiera målcontainern.
Hämta och kör SQL Server Linux-containeravbildningen
Innan du påbörjar följande steg måste du välja önskat gränssnitt (bash, PowerShell eller cmd) överst i den här artikeln.
För bash-kommandona i den här artikeln sudo
används. Om du inte vill använda sudo
för att köra Docker kan du konfigurera en docker
grupp och lägga till användare i den gruppen. Mer information finns i Steg efter installationen för Linux.
Hämta containeravbildningen från registret
Hämta SQL Server 2025 (17.x) Förhandsversion av Linux-containeravbildningen från 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
Den här snabbstarten skapar SQL Server 2025(17.x) förhandsversionscontainrar. Om du föredrar att skapa Linux-containrar för olika versioner av SQL Server kan du läsa:
Föregående kommando hämtar den senaste SQL Server 2025 (17.x) Förhandsversion av Linux-containeravbildningen. Om du vill hämta en specifik avbildning lägger du till ett kolon och taggnamnet, till exempel mcr.microsoft.com/mssql/server:2025-GA-ubuntu
. Information om hur du ser alla tillgängliga avbildningar finns i Microsoft Artifact Registry.
Starta containern
Om du vill köra Linux-containeravbildningen med Docker kan du använda följande kommando från ett bash-gränssnitt eller upphöjd PowerShell-kommandotolk.
Viktigt!
Miljövariabeln SA_PASSWORD
är inaktuell. Använd MSSQL_SA_PASSWORD
i stället.
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
Om du använder PowerShell Core ersätter du de dubbla citattecknarna med enkla citattecken.
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
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt. Om du inte följer dessa lösenordskrav kan containern inte konfigurera SQL Server och slutar fungera. Du kan undersöka felloggen med hjälp docker logs
av kommandot .
Som standard skapar den här snabbstarten en container med Utvecklarutgåvan av SQL Server. Processen för att köra produktionsutgåvor i containrar skiljer sig något åt. Mer information finns i Köra produktionscontaineravbildningar.
Följande tabell innehåller en beskrivning av parametrarna i föregående docker run
exempel:
Parameter | Beskrivning |
---|---|
-e "ACCEPT_EULA=Y" |
Ange variabeln ACCEPT_EULA till valfritt värde för att bekräfta att du godkänner End-User licensavtalet. Obligatorisk inställning för SQL Server-avbildningen. |
-e "MSSQL_SA_PASSWORD=<password>" |
Ange ett eget starkt lösenord som är minst åtta tecken och som uppfyller lösenordsprincipen. Obligatorisk inställning för SQL Server-avbildningen. |
-e "MSSQL_COLLATION=<SQL_Server_collation>" |
Ange en anpassad SQL Server-sortering istället för standard SQL_Latin1_General_CP1_CI_AS . |
-p 1433:1433 |
Mappa en TCP-port i värdmiljön (första värdet) med en TCP-port i containern (andra värdet). I det här exemplet lyssnar SQL Server på TCP-port 1433 i containern, och denna port exponeras sedan till TCP-port 1433 på värden. |
--name sql1 |
Ange ett anpassat namn för containern i stället för ett slumpmässigt genererat namn. Om du kör mer än en container kan du inte återanvända samma namn. |
--hostname sql1 |
Används för att uttryckligen ange containerns värdnamn. Om du inte anger värdnamnet används som standard container-ID, som är ett slumpmässigt genererat system-GUID. |
-d |
Kör containern i bakgrunden (daemon). |
mcr.microsoft.com/mssql/server:2025-latest |
SQL Server Linux-containeravbildningen. |
Ändra systemadministratörslösenordet
Systemadministratörskontot (sa
) är systemadministratör på SQL Server-instansen som skapas under installationen. När du har skapat din SQL Server-container kan du identifiera den MSSQL_SA_PASSWORD
miljövariabel som du angav genom att köra echo $MSSQL_SA_PASSWORD
i containern. I säkerhetssyfte bör du ändra lösenordet sa
i en produktionsmiljö.
Välj ett starkt lösenord som ska användas för
sa
-kontot. Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.Använd
docker exec
för att köra sqlcmd för att ändra lösenordet med Hjälp av Transact-SQL. I följande exempel läss de gamla och nya lösenorden från användarindata.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>'"
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
De senaste versionerna av sqlcmd är säkra som standard. Mer information om anslutningskryptering finns i sqlcmd-verktyg för Windows och Ansluta med sqlcmd- för Linux och macOS. Om anslutningen inte lyckas kan du lägga till alternativet
-No
i sqlcmd- för att ange att kryptering är valfritt, inte obligatoriskt.
Inaktivera SA-kontot som bästa praxis
Viktigt!
Du behöver dessa autentiseringsuppgifter för senare steg. Se till att skriva ned användar-ID och lösenord som du anger här.
När du ansluter till din SQL Server-instans med hjälp av systemadministratörskontot (sa
) för första gången efter installationen är det viktigt att du följer dessa steg och sedan omedelbart inaktiverar sa
-kontot som en metod för säkerhet.
Skapa en ny inloggning och gör den till medlem i sysadmin serverroll.
Beroende på om du har en container- eller icke-containerdistribution aktiverar du Windows-autentisering och skapar en ny Windows-baserad inloggning och lägger till den i sysadmin-serverrollen.
Annars skapar du en inloggning med SQL Server-autentisering och lägger till den i sysadmin serverroll.
Anslut till SQL Server-instansen med den nya inloggningen som du skapade.
Inaktivera det
sa
kontot, vilket rekommenderas för bästa praxis för säkerhet.
Visa lista över containrar
Om du vill visa dina Docker-containrar använder du
docker ps
kommandot .docker ps -a
docker ps -a
docker ps -a
Du bör se utdata som liknar följande exempel:
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
Om kolumnen
STATUS
visar statusenUp
körs SQL Server i containern och lyssnar på porten som anges i kolumnenPORTS
. Om kolumnenSTATUS
för din SQL Server-container visarExited
, se Felsöka SQL Server Docker-containrar. Servern är redo för anslutningar när SQL Server-felloggarna visar meddelandet:SQL Server is now ready for client connections. This is an informational message; no user action is required
. Du kan granska SQL Server-felloggen i containern med kommandot :docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
Parametern
--hostname
ändrar, som tidigare nämnts, containerns interna namn till ett anpassat värde. Det här värdet är det namn som returneras i följande Transact-SQL fråga:SELECT @@SERVERNAME, SERVERPROPERTY('ComputerNamePhysicalNetBIOS'), SERVERPROPERTY('MachineName'), SERVERPROPERTY('ServerName');
Att ange
--hostname
och--name
till samma värde är ett bra sätt att enkelt identifiera målcontainern.
Ansluta till SQL Server
Följande steg använder kommandoradsverktyget SQL Server, sqlcmd-verktyget, i containern för att ansluta till SQL Server.
Använd kommandot
docker exec -it
för att starta ett interaktivt bash-gränssnitt i containern som körs. I följande exempelsql1
är namnet som anges av parametern--name
när du skapade containern.docker exec -it sql1 "bash"
docker exec -it sql1 "bash"
docker exec -it sql1 "bash"
När du är inne i containern ansluter du lokalt med sqlcmd genom att använda den fullständiga sökvägen.
/opt/mssql-tools/bin/sqlcmd -S localhost -U <userid> -P "<password>"
De senaste versionerna av sqlcmd är säkra som standard. Mer information om anslutningskryptering finns i sqlcmd-verktyg för Windows och Ansluta med sqlcmd- för Linux och macOS. Om anslutningen inte lyckas kan du lägga till alternativet
-No
i sqlcmd- för att ange att kryptering är valfritt, inte obligatoriskt.Du kan utelämna lösenordet på kommandoraden för att uppmanas att ange det. Till exempel:
/opt/mssql-tools/bin/sqlcmd -S localhost -U <userid>
När du är inne i containern ansluter du lokalt med sqlcmd genom att använda den fullständiga sökvägen.
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid> -P "<password>"
De senaste versionerna av sqlcmd är säkra som standard. Mer information om anslutningskryptering finns i sqlcmd-verktyg för Windows och Ansluta med sqlcmd- för Linux och macOS. Om anslutningen inte lyckas kan du lägga till alternativet
-No
i sqlcmd- för att ange att kryptering är valfritt, inte obligatoriskt.Du kan utelämna lösenordet på kommandoraden för att uppmanas att ange det. Till exempel:
/opt/mssql-tools18/bin/sqlcmd -S localhost -U <userid>
- Om det blir framgångsrikt ska du komma till en sqlcmd kommandotolk:
1>
.
Skapa och fråga efter data
Följande avsnitt beskriver hur du använder sqlcmd och Transact-SQL för att skapa en ny databas, lägga till data och köra en fråga.
Skapa en ny databas
Följande steg skapar en ny databas med namnet TestDB
.
Från kommandotolken sqlcmd klistrar du in följande Transact-SQL kommando för att skapa en testdatabas:
CREATE DATABASE TestDB;
På nästa rad skriver du en fråga för att returnera namnet på alla databaser på servern:
SELECT name FROM sys.databases;
De föregående två kommandona kördes inte omedelbart. Skriv
GO
på en ny rad för att köra föregående kommandon:GO
Infoga data
Skapa sedan en ny tabell Inventory
och infoga två nya rader.
Från kommandotolken sqlcmd växlar du kontexten till den nya
TestDB
databasen:USE TestDB;
Skapa en ny tabell med namnet
Inventory
:CREATE TABLE Inventory ( id INT, name NVARCHAR (50), quantity INT );
Infoga data i den nya tabellen:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
Skriv
GO
för att köra föregående kommandon:GO
Välj data
Kör nu en fråga för att returnera data från tabellen Inventory
.
Från kommandotolken sqlcmd anger du en fråga som returnerar rader från tabellen
Inventory
där kvantiteten är större än 152:SELECT * FROM Inventory WHERE quantity > 152;
Kör kommandot:
GO
Avsluta kommandotolken för sqlcmd
Om du vill avsluta din sqlcmd--session skriver du
QUIT
:QUIT
Om du vill avsluta den interaktiva kommandotolken i containern skriver du
exit
. Containern fortsätter att köras när du har avslutat det interaktiva bash-gränssnittet.
Ansluta utanför containern
Du kan också ansluta till SQL Server-instansen på Docker-datorn från alla externa Linux-, Windows- eller macOS-verktyg som stöder SQL-anslutningar. Det externa verktyget använder IP-adressen för värddatorn.
Följande steg använder sqlcmd utanför containern för att ansluta till SQL Server som körs i containern. De här stegen förutsätter att du redan har SQL Server-kommandoradsverktyg installerade utanför containern. Samma principer gäller när du använder andra verktyg, men anslutningsprocessen är unik för varje verktyg.
Hitta IP-adressen för containerns värddator med hjälp av
ifconfig
ellerip addr
.I det här exemplet installerar du sqlcmd-verktyget på klientdatorn. Mer information finns i sqlcmd-verktyget eller Installera kommandoradsverktygen sqlcmd och bcp SQL Server i Linux.
Kör sqlcmd som anger IP-adressen och porten som mappas till port 1433 i containern. I det här exemplet är porten samma som port 1433 på värddatorn. Om du har angett en annan mappad port på värddatorn använder du den här. Du måste också öppna lämplig inkommande port i brandväggen för att tillåta anslutningen.
De senaste versionerna av sqlcmd är säkra som standard. Om anslutningen inte lyckas och du använder version 18 eller senare kan du lägga till
-No
alternativet i sqlcmd för att ange att kryptering är valfritt, inte obligatoriskt.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>"
Försiktighet
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
Kör Transact-SQL kommandon. När du är klar skriver du
QUIT
.
Andra vanliga verktyg för att ansluta till SQL Server är:
- SQL Server-tillägget för Visual Studio Code
- Använda SQL Server Management Studio i Windows för att hantera SQL Server på Linux
- Vad är Azure Data Studio?
- mssql-cli (förhandsversion)
- Hantera SQL Server i Linux med PowerShell Core
Ta bort containern
Om du vill ta bort SQL Server-containern som används i den här självstudien kör du följande kommandon:
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1
Dockerdemo
När du har använt SQL Server Linux-containeravbildningen för Docker kanske du vill veta hur Docker används för att förbättra utveckling och testning. Följande video visar hur Docker kan användas i ett scenario för kontinuerlig integrering och distribution.
Relaterade uppgifter
Relaterat innehåll
- Återställa en SQL Server-databas i en Linux-container
- Felsöka SQL Server Docker-containrar
- mssql-docker GitHub-lagringsplats
Bidra till SQL-dokumentation
Visste du att du kan redigera SQL-innehåll själv? Om du gör det hjälper du inte bara till att förbättra vår dokumentation, utan du får även kredit som deltagare på sidan.
Mer information finns i Redigera Microsoft Learn-dokumentation.