Schnellstart: Ausführen von SQL Server-Containerimages mit DockerQuickstart: Run SQL Server container images with Docker

Gilt für: JaSQL Server (nur Linux) NeinAzure SQL-Datenbank NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server (Linux only) noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

In diesem Schnellstart wird Docker verwendet, um das SQL Server 2017-Containerimage mssql-server-linux mithilfe von Pull zu übertragen und auszuführen.In this quickstart, you use Docker to pull and run the SQL Server 2017 container image, mssql-server-linux. Stellen Sie anschließend eine Verbindung mit sqlcmd her, um Ihre erste Datenbank zu erstellen und Abfragen auszuführen.Then connect with sqlcmd to create your first database and run queries.

Tipp

Wenn Sie SQL Server 2019-Container erstellen möchten, erhalten Sie weitere Informationen in der SQL Server 2019-Version dieses Artikels.If you want to run SQL Server 2019 containers, see the SQL Server 2019 version of this article.

In diesem Schnellstart wird Docker verwendet, um das SQL Server 2019-Containerimage mssql-server abzurufen und auszuführen.In this quickstart, you use Docker to pull and run the SQL Server 2019 container image, mssql-server. Stellen Sie anschließend eine Verbindung mit sqlcmd her, um Ihre erste Datenbank zu erstellen und Abfragen auszuführen.Then connect with sqlcmd to create your first database and run queries.

Tipp

In dieser Schnellstartanleitung werden SQL Server 2019-Container erstellt.This quickstart creates SQL Server 2019 containers. Wenn Sie lieber SQL Server 2017-Container erstellen möchten, erhalten Sie weitere Informationen in der SQL Server 2017-Version dieses Artikels.If you prefer to create SQL Server 2017 containers, see the SQL Server 2017 version of this article.

Dieses Image enthält SQL Server für Linux (basierend auf Ubuntu 16.04).This image consists of SQL Server running on Linux based on Ubuntu 16.04. Es kann unter Linux mit der Docker-Engine 1.8 und höher und in Docker für Mac bzw. Windows verwendet werden.It can be used with the Docker Engine 1.8+ on Linux or on Docker for Mac/Windows. In diesem Schnellstart liegt der Fokus auf der Verwendung von SQL Server auf dem linux-Image.This quickstart specifically focuses on using the SQL Server on linux image. Das Windows-Image wird hier zwar nicht behandelt, aber auf der Docker-Hubseite zu „mssql-server-windows-developer“ erhalten Sie weitere Informationen.The Windows image is not covered, but you can learn more about it on the mssql-server-windows-developer Docker Hub page.

Erforderliche KomponentenPrerequisites

Pullen und Ausführen des ContainerimagesPull and run the container image

Bevor Sie die folgenden Schritte ausführen, stellen Sie sicher, dass Sie am Anfang dieses Artikels Ihre bevorzugte Shell (bash, PowerShell oder cmd) ausgewählt haben.Before starting the following steps, make sure that you have selected your preferred shell (bash, PowerShell, or cmd) at the top of this article.

  1. Pullen Sie das Linux-Containerimage von SQL Server 2017 aus Microsoft Container Registry.Pull the SQL Server 2017 Linux container image from 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
    

    Tipp

    Wenn Sie SQL Server 2019-Container erstellen möchten, erhalten Sie in der SQL Server 2019-Version dieses Artikels weitere Informationen.If you want to run SQL Server 2019 containers, see the SQL Server 2019 version of this article.

    Mit dem obenstehenden Befehl wird das neueste Containerimage von SQL Server 2017 mithilfe von Pull übertragen.The previous command pulls the latest SQL Server 2017 container image. Wenn Sie ein bestimmtes Image übertragen möchten, fügen Sie einen Doppelpunkt und den Tagnamen hinzu (z.B. mcr.microsoft.com/mssql/server:2017-GA-ubuntu).If you want to pull a specific image, you add a colon and the tag name (for example, mcr.microsoft.com/mssql/server:2017-GA-ubuntu). Alle verfügbaren Images finden Sie auf der Docker-Hubseite zu „mssql-server“.To see all available images, see the mssql-server Docker hub page.

    Für die bash-Befehle in diesem Artikel wird sudo verwendet.For the bash commands in this article, sudo is used. Unter MacOS ist sudo möglicherweise nicht erforderlich.On MacOS, sudo might not be required. Wenn Sie sudo unter Linux nicht zum Ausführen von Docker verwenden möchten, können Sie eine docker-Gruppe konfigurieren und dieser Gruppe Benutzer hinzufügen.On Linux, if you do not want to use sudo to run Docker, you can configure a docker group and add users to that group. Weitere Informationen finden Sie unter Post-installation steps for Linux (Schritte nach der Installation unter Linux).For more information, see Post-installation steps for Linux.

  2. Zum Ausführen des Containerimages in Docker können Sie eine Bash-Shell (Linux bzw. macOS) oder eine PowerShell-Eingabeaufforderung mit erhöhten Rechten verwenden. Nachfolgend finden Sie den dafür benötigten Befehl:To run the container image with Docker, you can use the following command from a bash shell (Linux/macOS) or elevated PowerShell command prompt.

    sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \
       -p 1433:1433 --name sql1 \
       -d mcr.microsoft.com/mssql/server:2017-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 `
       -d mcr.microsoft.com/mssql/server:2017-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 `
       -d mcr.microsoft.com/mssql/server:2017-latest
    

    Hinweis

    Das Kennwort sollte der Standardrichtlinie für SQL Server-Kennwörter entsprechen. Ist dies nicht der Fall, kann der Container SQL Server nicht einrichten und funktioniert nicht mehr.The password should follow the SQL Server default password policy, otherwise the container can not setup SQL server and will stop working. In der Standardeinstellung muss das Kennwort mindestens 8 Zeichen lang sein und Zeichen aus drei der folgenden vier Gruppen enthalten: Großbuchstaben, Kleinbuchstaben, Ziffern und Symbole.By default, the password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols. Mit dem Befehl docker logs können Sie das Fehlerprotokoll untersuchen.You can examine the error log by executing the docker logs command.

    Hinweis

    Standardmäßig wird dabei ein Container erstellt, der die Developer Edition von SQL Server 2017 enthält.By default, this creates a container with the Developer edition of SQL Server 2017. Die Vorgehensweise zum Ausführen von Produktionseditionen in Containern weicht hiervon minimal ab.The process for running production editions in containers is slightly different. Weitere Informationen finden Sie unter Run production container images (Ausführen von Containerimages für Produktionsumgebungen).For more information, see Run production container images.

    In der folgenden Tabelle finden Sie Beschreibungen der Parameter des vorangegangenen Beispiels für docker run:The following table provides a description of the parameters in the previous docker run example:

    ParameterParameter und BeschreibungDescription
    -e „ACCEPT_EULA = Y“-e "ACCEPT_EULA=Y" Legen Sie für die Variable ACCEPT_EULA einen beliebigen Wert fest, um Ihre Zustimmung zum End-User Licensing Agreement (Benutzerlizenzvertrag) zu geben.Set the ACCEPT_EULA variable to any value to confirm your acceptance of the End-User Licensing Agreement. Diese Einstellung ist für das SQL Server-Image zwingend erforderlich.Required setting for the SQL Server image.
    -e „SA_PASSWORD=<YourStrong@Passw0rd\>“-e "SA_PASSWORD=<YourStrong@Passw0rd\>" Geben Sie ein starkes Kennwort ein, das aus mindestens acht Zeichen besteht und den Kennwortanforderungen von SQL Server entspricht.Specify your own strong password that is at least 8 characters and meets the SQL Server password requirements. Diese Einstellung ist für das SQL Server-Image zwingend erforderlich.Required setting for the SQL Server image.
    -p 1433:1433-p 1433:1433 Ordnen Sie einen TCP-Port in der Hostumgebung (erster Wert) einem TCP-Port im Container zu (zweiter Wert).Map a TCP port on the host environment (first value) with a TCP port in the container (second value). In diesem Beispiel lauscht SQL Server an TCP 1433 im Container. Diese Informationen werden für Port 1433 auf dem Host offen gelegt.In this example, SQL Server is listening on TCP 1433 in the container and this is exposed to the port, 1433, on the host.
    --name sql1--name sql1 Geben Sie dem Container selbst einen Namen, anstatt einen willkürlich generierten zu verwenden.Specify a custom name for the container rather than a randomly generated one. Wenn Sie mehrere Container ausführen, können Sie nicht denselben Namen mehrfach verwenden.If you run more than one container, you cannot reuse this same name.
    -d mcr.microsoft.com/mssql/server:2017-latest-d mcr.microsoft.com/mssql/server:2017-latest Das Linux-Containerimage von SQL Server 2017The SQL Server 2017 Linux container image.
  3. Verwenden Sie den Befehl docker ps, um Ihre Docker-Container anzeigen zu lassen.To view your Docker containers, use the docker ps command.

    sudo docker ps -a
    
    docker ps -a
    
    docker ps -a
    

    Die Ausgabe sollte dann ähnlich wie in diesem Screenshot sein:You should see output similar to the following screenshot:

    Ausgabe des Befehls „docker ps“

  4. Wenn in der Spalte STATUS Up (Aktiv) eingetragen ist, wird SQL Server im Container ausgeführt und überwacht den Port, der in der Spalte PORTS angegeben ist.If the STATUS column shows a status of Up, then SQL Server is running in the container and listening on the port specified in the PORTS column. Wenn in der Spalte STATUS Ihres SQL Server-Containers Exited (Beendet) steht, lesen Sie bitte im Abschnitt „Problembehebung“ im Konfigurationshandbuch nach.If the STATUS column for your SQL Server container shows Exited, see the Troubleshooting section of the configuration guide.

Der Parameter -h (Hostname) ist ebenfalls nützlich, wird der Einfachheit halber jedoch in diesem Tutorial nicht verwendet.The -h (host name) parameter is also useful, but it is not used in this tutorial for simplicity. Mit ihm lässt sich der interne Name eines Containers in einen benutzerdefinierten Wert ändern.This changes the internal name of the container to a custom value. Dieser Name wird in der folgenden Transact-SQL-Abfrage zurückgegeben:This is the name you'll see returned in the following Transact-SQL query:

SELECT @@SERVERNAME,
    SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),
    SERVERPROPERTY('MachineName'),
    SERVERPROPERTY('ServerName')

Wenn Sie für -h und --name denselben Wert festlegen, kann der Zielcontainer ganz einfach ermittelt werden.Setting -h and --name to the same value is a good way to easily identify the target container.

Pullen und Ausführen des ContainerimagesPull and run the container image

Bevor Sie die folgenden Schritte ausführen, stellen Sie sicher, dass Sie am Anfang dieses Artikels Ihre bevorzugte Shell (bash, PowerShell oder cmd) ausgewählt haben.Before starting the following steps, make sure that you have selected your preferred shell (bash, PowerShell, or cmd) at the top of this article.

  1. Übertragen Sie das Linux-Containerimage von SQL Server 2019 mithilfe von Pull aus dem Docker Hub.Pull the SQL Server 2019 Linux container image from Docker Hub.

    sudo docker pull mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
    
    docker pull mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
    
    docker pull mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
    

    Tipp

    In diesem Schnellstart wird das Docker-Image von SQL Server 2019 verwendet.This quickstart uses the SQL Server 2019 Docker image. Wenn Sie das Image von SQL Server 2017 ausführen möchten, lesen Sie die Version dieses Artikels zu SQL Server 2017.If you want to run the SQL Server 2017 image, see the SQL Server 2017 version of this article.

    Mit dem vorherigen Befehl rufen Sie das auf Ubuntu basierende Containerimage von SQL Server 2019 ab.The previous command pulls the SQL Server 2019 container image based on Ubuntu. Informationen dazu, wie Sie stattdessen Containerimages verwenden, die auf Red Hat basieren, finden Sie unter Run RHEL-based container images (Ausführen von RHEL-basierten Containerimages).To instead use container images based on RedHat, see Run RHEL-based container images. Informationen zu allen verfügbaren Images finden Sie auf der Docker-Hubseite zu „mssql-server-linux“.To see all available images, see the mssql-server-linux Docker hub page.

    Für die bash-Befehle in diesem Artikel wird sudo verwendet.For the bash commands in this article, sudo is used. Unter MacOS ist sudo möglicherweise nicht erforderlich.On MacOS, sudo might not be required. Wenn Sie sudo unter Linux nicht zum Ausführen von Docker verwenden möchten, können Sie eine docker-Gruppe konfigurieren und dieser Gruppe Benutzer hinzufügen.On Linux, if you do not want to use sudo to run Docker, you can configure a docker group and add users to that group. Weitere Informationen finden Sie unter Post-installation steps for Linux (Schritte nach der Installation unter Linux).For more information, see Post-installation steps for Linux.

  2. Zum Ausführen des Containerimages in Docker können Sie eine Bash-Shell (Linux bzw. macOS) oder eine PowerShell-Eingabeaufforderung mit erhöhten Rechten verwenden. Nachfolgend finden Sie den dafür benötigten Befehl:To run the container image with Docker, you can use the following command from a bash shell (Linux/macOS) or elevated PowerShell command prompt.

    sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" \
       -p 1433:1433 --name sql1 \
       -d mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
    
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 `
       -d mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
    
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 `
       -d mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04
    

    Hinweis

    Das Kennwort sollte der Standardrichtlinie für SQL Server-Kennwörter entsprechen. Ist dies nicht der Fall, kann der Container SQL Server nicht einrichten und funktioniert nicht mehr.The password should follow the SQL Server default password policy, otherwise the container can not setup SQL server and will stop working. In der Standardeinstellung muss das Kennwort mindestens 8 Zeichen lang sein und Zeichen aus drei der folgenden vier Gruppen enthalten: Großbuchstaben, Kleinbuchstaben, Ziffern und Symbole.By default, the password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols. Mit dem Befehl docker logs können Sie das Fehlerprotokoll untersuchen.You can examine the error log by executing the docker logs command.

    Hinweis

    Standardmäßig wird dabei ein Container erstellt, der die Developer Edition von SQL Server 2019 enthält.By default, this creates a container with the Developer edition of SQL Server 2019.

    In der folgenden Tabelle finden Sie Beschreibungen der Parameter des vorangegangenen Beispiels für docker run:The following table provides a description of the parameters in the previous docker run example:

    ParameterParameter und BeschreibungDescription
    -e „ACCEPT_EULA = Y“-e "ACCEPT_EULA=Y" Legen Sie für die Variable ACCEPT_EULA einen beliebigen Wert fest, um Ihre Zustimmung zum End-User Licensing Agreement (Benutzerlizenzvertrag) zu geben.Set the ACCEPT_EULA variable to any value to confirm your acceptance of the End-User Licensing Agreement. Diese Einstellung ist für das SQL Server-Image zwingend erforderlich.Required setting for the SQL Server image.
    -e „SA_PASSWORD=<YourStrong@Passw0rd\>“-e "SA_PASSWORD=<YourStrong@Passw0rd\>" Geben Sie ein starkes Kennwort ein, das aus mindestens acht Zeichen besteht und den Kennwortanforderungen von SQL Server entspricht.Specify your own strong password that is at least 8 characters and meets the SQL Server password requirements. Diese Einstellung ist für das SQL Server-Image zwingend erforderlich.Required setting for the SQL Server image.
    -p 1433:1433-p 1433:1433 Ordnen Sie einen TCP-Port in der Hostumgebung (erster Wert) einem TCP-Port im Container zu (zweiter Wert).Map a TCP port on the host environment (first value) with a TCP port in the container (second value). In diesem Beispiel lauscht SQL Server an TCP 1433 im Container. Diese Informationen werden für Port 1433 auf dem Host offen gelegt.In this example, SQL Server is listening on TCP 1433 in the container and this is exposed to the port, 1433, on the host.
    --name sql1--name sql1 Geben Sie dem Container selbst einen Namen, anstatt einen willkürlich generierten zu verwenden.Specify a custom name for the container rather than a randomly generated one. Wenn Sie mehrere Container ausführen, können Sie nicht denselben Namen mehrfach verwenden.If you run more than one container, you cannot reuse this same name.
    mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04mcr.microsoft.com/mssql/server:2019-GA-ubuntu-16.04 Das Ubuntu Linux-Containerimage von SQL Server 2019The SQL Server 2019 Ubuntu Linux container image.
  3. Verwenden Sie den Befehl docker ps, um Ihre Docker-Container anzeigen zu lassen.To view your Docker containers, use the docker ps command.

    sudo docker ps -a
    
    docker ps -a
    
    docker ps -a
    

    Die Ausgabe sollte dann ähnlich wie in diesem Screenshot sein:You should see output similar to the following screenshot:

    Ausgabe des Befehls „docker ps“

  4. Wenn in der Spalte STATUS Up (Aktiv) eingetragen ist, wird SQL Server im Container ausgeführt und überwacht den Port, der in der Spalte PORTS angegeben ist.If the STATUS column shows a status of Up, then SQL Server is running in the container and listening on the port specified in the PORTS column. Wenn in der Spalte STATUS Ihres SQL Server-Containers Exited (Beendet) steht, lesen Sie bitte im Abschnitt „Problembehebung“ im Konfigurationshandbuch nach.If the STATUS column for your SQL Server container shows Exited, see the Troubleshooting section of the configuration guide.

Der Parameter -h (Hostname) ist ebenfalls nützlich, wird der Einfachheit halber jedoch in diesem Tutorial nicht verwendet.The -h (host name) parameter is also useful, but it is not used in this tutorial for simplicity. Mit ihm lässt sich der interne Name eines Containers in einen benutzerdefinierten Wert ändern.This changes the internal name of the container to a custom value. Dieser Name wird in der folgenden Transact-SQL-Abfrage zurückgegeben:This is the name you'll see returned in the following Transact-SQL query:

SELECT @@SERVERNAME,
    SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),
    SERVERPROPERTY('MachineName'),
    SERVERPROPERTY('ServerName')

Wenn Sie für -h und --name denselben Wert festlegen, kann der Zielcontainer ganz einfach ermittelt werden.Setting -h and --name to the same value is a good way to easily identify the target container.

Ändern des SystemadministratorkennwortsChange the SA password

Das SA-Konto ist ein Systemadministrator auf der SQL Server-Instanz, der beim Setup erstellt wird.The SA account is a system administrator on the SQL Server instance that gets created during setup. Nach dem Erstellen Ihres SQL Server-Containers wird die von Ihnen festgelegte SA_PASSWORD Umgebungsvariable sichtbar, wenn Sie sie in dem Container ausführenecho $SA_PASSWORD.After creating your SQL Server container, the SA_PASSWORD environment variable you specified is discoverable by running echo $SA_PASSWORD in the container. Ändern Sie aus Sicherheitsgründen ihr SA-Kennwort.For security purposes, change your SA password.

  1. Wählen Sie ein sicheres Kennwort für den SA-Benutzer aus.Choose a strong password to use for the SA user.

  2. Verwenden Sie docker exec in Transact-SQL sqlcmd zum Ausführen und Ändern des Kennworts.Use docker exec to run sqlcmd to change the password using Transact-SQL. Ersetzen Sie im folgenden Beispiel das alte Kennwort, <YourStrong!Passw0rd>, und das neue Kennwort, <YourNewStrong!Passw0rd>, durch Ihre eigenen Kennwortwerte.In the following example, replace the old password, <YourStrong!Passw0rd>, and the new password, <YourNewStrong!Passw0rd>, with your own password values.

    sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U SA -P "<YourStrong@Passw0rd>" \
       -Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong@Passw0rd>"'
    
    docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd `
       -S localhost -U SA -P "<YourStrong@Passw0rd>" `
       -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
    
    docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd `
       -S localhost -U SA -P "<YourStrong!Passw0rd>" `
       -Q "ALTER LOGIN SA WITH PASSWORD='<YourNewStrong@Passw0rd>'"
    

Verbindung mit SQL Server herstellenConnect to SQL Server

In den folgenden Schritten wird im Container das SQL Server-Befehlszeilentool sqlcmd genutzt, um eine Verbindung mit SQL Server herzustellen.The following steps use the SQL Server command-line tool, sqlcmd, inside the container to connect to SQL Server.

  1. Verwenden Sie den Befehl docker exec -it, um in Ihrem laufenden Container eine interaktive Bash-Shell zu starten.Use the docker exec -it command to start an interactive bash shell inside your running container. Im folgenden Beispiel steht sql1 für den Namen, den Sie bei der Erstellung des Containers mit dem Parameter --name angegeben haben.In the following example sql1 is name specified by the --name parameter when you created the container.

    sudo docker exec -it sql1 "bash"
    
    docker exec -it sql1 "bash"
    
    docker exec -it sql1 "bash"
    
  2. Stellen Sie eine lokale Verbindung mit „sqlcmd“ her.Once inside the container, connect locally with sqlcmd. „Sqlcmd“ verwendet nicht automatisch den richtigen Pfad. Sie müssen daher selbst den vollständigen Pfand angeben.Sqlcmd is not in the path by default, so you have to specify the full path.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
    

    Tipp

    Sie können das Kennwort in der Befehlszeile auslassen, damit Sie aufgefordert werden, es einzugeben.You can omit the password on the command-line to be prompted to enter it.

  3. Wenn dies erfolgreich war, sollten zu einer sqlcmd Eingabeaufforderung: 1> gelangen.If successful, you should get to a sqlcmd command prompt: 1>.

Erstellen und Abfragen von DatenCreate and query data

Die folgenden Abschnitte führen Sie durch die Verwendung von sqlcmd und Transact-SQL, um eine neue Datenbank zu erstellen, Daten hinzuzufügen und eine einfache Abfrage auszuführen.The following sections walk you through using sqlcmd and Transact-SQL to create a new database, add data, and run a simple query.

Erstellen einer neuen DatenbankCreate a new database

Mit den folgenden Schritten wird eine neue Datenbank mit dem Namen TestDB erstellt.The following steps create a new database named TestDB.

  1. Fügen Sie aus der sqlcmd-Eingabeaufforderung den folgenden Transact-SQL-Befehl zur Erstellung einer Testdatenbank ein:From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:

    CREATE DATABASE TestDB
    
  2. Schreiben Sie in der nächsten Zeile eine Abfrage, um den Namen all Ihrer Datenbanken auf Ihrem Server zurückzugeben:On the next line, write a query to return the name of all of the databases on your server:

    SELECT Name from sys.Databases
    
  3. Die vorherigen beiden Befehle wurden nicht sofort ausgeführt.The previous two commands were not executed immediately. Sie müssen GO in einer neuen Zeile eingeben, um die zuvor eingegebenen Befehle auszuführen:You must type GO on a new line to execute the previous commands:

    GO
    

Einfügen von DatenInsert data

Erstellen Sie als Nächstes eine neue Tabelle, Inventory, und fügen Sie zwei neue Zeilen ein.Next create a new table, Inventory, and insert two new rows.

  1. Wechseln Sie den Kontext aus der sqlcmd-Eingabeaufforderung zur neuen TestDB-Datenbank:From the sqlcmd command prompt, switch context to the new TestDB database:

    USE TestDB
    
  2. Erstellen Sie eine neue Tabelle mit dem Namen Inventory:Create new table named Inventory:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. Fügen Sie Daten in die neue Tabelle ein:Insert data into the new table:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. Geben Sie GO ein, um die zuvor eingegebenen Befehle auszuführen:Type GO to execute the previous commands:

    GO
    

Auswählen von DatenSelect data

Führen Sie nun eine Abfrage zum Zurückgeben von Daten aus der Inventory-Tabelle aus.Now, run a query to return data from the Inventory table.

  1. Geben Sie aus der sqlcmd-Eingabeaufforderung eine Abfrage ein, die Reihen aus der Inventory-Tabelle zurückgibt, bei denen die Menge größer als 152 ist:From the sqlcmd command prompt, enter a query that returns rows from the Inventory table where the quantity is greater than 152:

    SELECT * FROM Inventory WHERE quantity > 152;
    
  2. Führen Sie den Befehl aus:Execute the command:

    GO
    

Beenden der sqlcmd-EingabeaufforderungExit the sqlcmd command prompt

  1. Zum Beenden der sqlcmd-Sitzung, geben Sie QUIT ein:To end your sqlcmd session, type QUIT:

    QUIT
    
  2. Geben Sie exit ein, um die interaktive Befehlszeile in Ihrem Container zu beenden.To exit the interactive command-prompt in your container, type exit. Der Container wird auch nach dem Beenden der interaktiven Bash-Shell weiter ausgeführt.Your container continues to run after you exit the interactive bash shell.

Herstellen einer Verbindung von außerhalb des ContainersConnect from outside the container

Sie können auch über jedes externe Linux-, Windows- oder macOS-Tool, das SQL-Verbindungen unterstützt, eine Verbindung mit der SQL Server-Instanz auf Ihrem Docker-Computer herstellen.You can also connect to the SQL Server instance on your Docker machine from any external Linux, Windows, or macOS tool that supports SQL connections.

Mithilfe der folgenden Schritte stellen Sie über sqlcmd von außerhalb Ihres Containers eine Verbindung mit SQL Server im Container her.The following steps use sqlcmd outside of your container to connect to SQL Server running in the container. Voraussetzung ist, dass Sie außerhalb Ihres Containers bereits SQL Server-Befehlszeilentools installiert haben.These steps assume that you already have the SQL Server command-line tools installed outside of your container. Für alle Tools gelten dieselben Prinzipien. Die Verbindung wird jedoch bei jedem Tool auf eine andere Weise hergestellt.The same principles apply when using other tools, but the process of connecting is unique to each tool.

  1. Ermitteln Sie die IP-Adresse des Computers, der Ihren Container hostet.Find the IP address for the machine that hosts your container. Verwenden Sie dazu unter Linux Ifconfig oder ip addr. Verwenden Sie unter Windows ipconfig.On Linux, use ifconfig or ip addr. On Windows, use ipconfig.

  2. Installieren Sie für dieses Beispiel das Tool sqlcmd auf Ihrem Clientcomputer.For this example, install the sqlcmd tool on your client machine. Weitere Informationen finden Sie unter sqlcmd Utility (Hilfsprogramm „sqlcmd“) oder Install sqlcmd and bcp the SQL Server command-line tools on Linux (Installieren der SQL Server-Befehlszeilentools sqlcmd und bcp unter Linux).For more information, see Install sqlcmd on Windows or Install sqlcmd on Linux.

  3. Führen Sie „sqlcmd“ aus. Geben Sie dabei die IP-Adresse und den Port an, der dem Port 1433 Ihres Containers zugeordnet ist.Run sqlcmd specifying the IP address and the port mapped to port 1433 in your container. In diesem Beispiel ist das derselbe Port, 1433, auf dem Hostcomputer.In this example, that is the same port, 1433, on the host machine. Wenn Sie einen anderen zugeordneten Port auf dem Hostcomputer angegeben haben, verwenden Sie diesen hier.If you specified a different mapped port on the host machine, you would use it here.

    sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"
    
    sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"
    
    sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong@Passw0rd>"
    
  4. Führen Sie Transact-SQL-Befehle aus.Run Transact-SQL commands. Wenn Sie fertig sind, geben Sie QUIT ein.When finished, type QUIT.

Für eine Verbindung mit SQL Server werden häufig auch folgende Tools verwendet:Other common tools to connect to SQL Server include:

Entfernen Ihres ContainersRemove your container

Wenn Sie den in diesem Tutorial verwendeten SQL Server-Container entfernen möchten, führen Sie die folgenden Befehle aus:If you want to remove the SQL Server container used in this tutorial, run the following commands:

sudo docker stop sql1
sudo docker rm sql1
docker stop sql1
docker rm sql1
docker stop sql1
docker rm sql1

Warnung

Wenn Sie einen Container beenden oder entfernen, werden die SQL Server-Daten dauerhaft aus diesem Container gelöscht.Stopping and removing a container permanently deletes any SQL Server data in the container. Wenn Sie Ihre Daten weiterhin benötigen, erstellen Sie eine Sicherungskopie des Containers, oder nutzen Sie für die Containerdaten eine Methode zur Datenpersistenz.If you need to preserve your data, create and copy a backup file out of the container or use a container data persistence technique.

Docker-DemoDocker demo

Nachdem Sie nun das SQL Server-Containerimage für Docker getestet haben, sollten Sie auch wissen, welche Vorteile Ihnen Docker beim Entwickeln und Testen bringt.After you have tried using the SQL Server container image for Docker, you might want to know how Docker is used to improve development and testing. Im folgenden Video sehen Sie, wie sich Docker in einem Continuous Integration-Szenario bzw. einem Continuous Deployment-Szenario verwenden lässt.The following video shows how Docker can be used in a continuous integration and deployment scenario.

Nächste SchritteNext steps

Ein Tutorial zum Wiederherstellen von Sicherungskopien von Datenbanken in einem Container finden Sie unter Restore a SQL Server database in a Linux Docker container (Wiederherstellen einer SQL Server-Datenbank in einem Docker-Container unter Linux).For a tutorial on how to restore database backup files into a container, see Restore a SQL Server database in a Linux Docker container. Informationen zu anderen Szenarios, z. B. zum Ausführen mehrerer Container, zur Datenpersistenz und zum Beheben von Problemen, finden Sie unter Configure SQL Server container images on Docker (Konfigurieren von SQL Server-Containerimages in Docker).To explore other scenarios, such as running multiple containers, data persistence, and troubleshooting, see Configure SQL Server container images on Docker.

Ressourcen, Feedback und Informationen über bekannte Probleme finden Sie im GitHub-Repository „mssql-docker“.Also, check out the mssql-docker GitHub repository for resources, feedback, and known issues.