Avvio rapido: Eseguire le immagini del contenitore SQL Server con DockerQuickstart: Run SQL Server container images with Docker

SI APPLICA A: sìSQL Server (solo Linux) noDatabase SQL di Azure noAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server (Linux only) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

In questa guida introduttiva si usa Docker per effettuare il pull ed eseguire l'immagine del contenitore di SQL Server 2017, mssql-server-linux.In this quickstart, you use Docker to pull and run the SQL Server 2017 container image, mssql-server-linux. Ci si connette quindi con sqlcmd per creare il primo database ed eseguire query.Then connect with sqlcmd to create your first database and run queries.

Suggerimento

Se si vuole provare l'immagine di anteprima di SQL Server 2019, vedere la versione di anteprima di SQL Server 2019 di questo articolo.If you want to try the SQL Server 2019 preview image, see the SQL Server 2019 preview version of this article.

In questa Guida introduttiva, è usare Docker per il pull ed eseguire l'immagine del contenitore, anteprima SQL Server 2019 mssql-server.In this quickstart, you use Docker to pull and run the SQL Server 2019 preview container image, mssql-server. Ci si connette quindi con sqlcmd per creare il primo database ed eseguire query.Then connect with sqlcmd to create your first database and run queries.

Suggerimento

Questa Guida introduttiva crea contenitori di anteprima di SQL Server 2019.This quickstart creates SQL Server 2019 preview containers. Se si preferisce creare contenitori di SQL Server 2017, vedere la versione di SQL Server 2017 di questo articolo.If you prefer to create SQL Server 2017 containers, see the SQL Server 2017 version of this article.

Questa immagine è costituita da SQL Server in esecuzione su Linux basato su Ubuntu 16.04.This image consists of SQL Server running on Linux based on Ubuntu 16.04. Può essere usata con il motore Docker 1.8 o versione successiva su Linux o in Docker per Mac/Windows.It can be used with the Docker Engine 1.8+ on Linux or on Docker for Mac/Windows. Questa Guida introduttiva è incentrata in particolare sull'uso di SQL Server in linux immagine.This quickstart specifically focuses on using the SQL Server on linux image. L'immagine Windows non è argomento di questa guida, ma è possibile ottenere informazioni su di essa nella pagina mssql-server-windows-developer dell'hub Docker.The Windows image is not covered, but you can learn more about it on the mssql-server-windows-developer Docker Hub page.

PrerequisitiPrerequisites

Eseguire il pull ed eseguire l'immagine del contenitorePull and run the container image

Prima di iniziare questa procedura, assicurarsi di aver selezionato la shell preferita (bash, PowerShell o cmd) nella parte superiore di questo articolo.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. Eseguire il pull dal registro contenitori di Microsoft l'immagine del contenitore SQL Server 2017 su Linux.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
    

    Suggerimento

    Se si vuole provare l'immagine di anteprima di SQL Server 2019, vedere la versione di anteprima di SQL Server 2019 di questo articolo.If you want to try the SQL Server 2019 preview image, see the SQL Server 2019 preview version of this article.

    Il comando riportato sopra esegue il pull dell'immagine del contenitore di SQL Server 2017 più recente.The previous command pulls the latest SQL Server 2017 container image. Se si vuole eseguire il pull di un'immagine specifica, aggiungere un segno di due punti e il nome del tag (ad esempio 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). Per informazioni su tutte le immagini disponibili, vedere pagina dell'hub Docker mssql-server.To see all available images, see the mssql-server Docker hub page.

    Per i comandi di bash in questo articolo, sudo viene usato.For the bash commands in this article, sudo is used. In MacOS, sudo potrebbe non essere necessaria.On MacOS, sudo might not be required. In Linux, se non si desidera utilizzare sudo per eseguire Docker, è possibile configurare un docker gruppo e aggiungere utenti a tale gruppo.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. Per altre informazioni, vedere passaggi di post-installazione per Linux.For more information, see Post-installation steps for Linux.

  2. Per eseguire l'immagine del contenitore con Docker, è possibile usare il comando seguente da una shell Bash (Linux/macOS) o da un prompt dei comandi PowerShell con privilegi elevati.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
    

    Nota

    La password deve essere conforme ai criteri password predefiniti di SQL Server, altrimenti il contenitore non potrà configurare SQL Server e smetterà di funzionare.The password should follow the SQL Server default password policy, otherwise the container can not setup SQL server and will stop working. Per impostazione predefinita, la password deve contenere almeno 8 caratteri e contenere caratteri di tre delle quattro categorie seguenti: Lettere maiuscole, lettere minuscole, cifre in Base 10 e simboli.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. È possibile esaminare il log degli errori eseguendo il comando docker logs.You can examine the error log by executing the docker logs command.

    Nota

    Per impostazione predefinita, viene creato un contenitore con l'edizione Developer di SQL Server 2017.By default, this creates a container with the Developer edition of SQL Server 2017. Il processo di esecuzione delle edizioni di produzione nei contenitori è leggermente diverso.The process for running production editions in containers is slightly different. Per altre informazioni, vedere Run production container images (Eseguire immagini del contenitore di produzione).For more information, see Run production container images.

    La tabella seguente offre una descrizione dei parametri dell'esempio docker run precedente:The following table provides a description of the parameters in the previous docker run example:

    ParametroParameter DescrizioneDescription
    -e 'ACCEPT_EULA=Y'-e 'ACCEPT_EULA=Y' Impostare la variabile ACCEPT_EULA su qualsiasi valore per confermare l'accettazione delle condizioni di licenza .Set the ACCEPT_EULA variable to any value to confirm your acceptance of the End-User Licensing Agreement. Impostazione obbligatoria per l'immagine di SQL Server.Required setting for the SQL Server image.
    -e 'SA_PASSWORD=<YourStrong!Passw0rd>'-e 'SA_PASSWORD=<YourStrong!Passw0rd>' Specificare la password complessa composta da almeno 8 caratteri e conforme ai requisiti per le password di SQL Server.Specify your own strong password that is at least 8 characters and meets the SQL Server password requirements. Impostazione obbligatoria per l'immagine di SQL Server.Required setting for the SQL Server image.
    -p 1433:1433-p 1433:1433 Eseguire il mapping di una porta TCP nell'ambiente host (primo valore) con una porta TCP nel contenitore (secondo valore).Map a TCP port on the host environment (first value) with a TCP port in the container (second value). In questo esempio, SQL Server è in ascolto sulla porta TCP 1433 nel contenitore e questa funzionalità è esposta alla porta 1433, nell'host.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 Specificare un nome personalizzato per il contenitore, invece di un nome generato in modo casuale.Specify a custom name for the container rather than a randomly generated one. Se si eseguono più contenitori, non è possibile riutilizzare questo stesso nome.If you run more than one container, you cannot reuse this same name.
    mcr.microsoft.com/mssql/server:2017-latestmcr.microsoft.com/mssql/server:2017-latest Immagine del contenitore di SQL Server 2017 su Linux.The SQL Server 2017 Linux container image.
  3. Per visualizzare i contenitori di Docker, usare il comando docker ps.To view your Docker containers, use the docker ps command.

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

    L'output risultante dovrebbe essere simile allo screenshot seguente:You should see output similar to the following screenshot:

    Output del comando ps di Docker

  4. Se nella colonna STATUS è impostato lo statoUp, SQL Server è in esecuzione nel contenitore e in ascolto sulla porta specificata nella colonna PORTS.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. Se la colonna STATUS del contenitore di SQL Server è impostata su Exited, vedere la sezione relativa alla risoluzione dei problemi della guida alla configurazione.If the STATUS column for your SQL Server container shows Exited, see the Troubleshooting section of the configuration guide.

Anche il parametro -h (nome host) è utile, ma non viene usato in questa esercitazione per semplicità.The -h (host name) parameter is also useful, but it is not used in this tutorial for simplicity. Cambia il nome interno del contenitore sostituendolo con un valore personalizzato.This changes the internal name of the container to a custom value. È il nome che viene restituito nella query Transact-SQL seguente:This is the name you'll see returned in the following Transact-SQL query:

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

L'impostazione di -h e --name sullo stesso valore è un buon modo per identificare facilmente il contenitore di destinazione.Setting -h and --name to the same value is a good way to easily identify the target container.

Eseguire il pull ed eseguire l'immagine del contenitorePull and run the container image

Prima di iniziare questa procedura, assicurarsi di aver selezionato la shell preferita (bash, PowerShell o cmd) nella parte superiore di questo articolo.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. Eseguire il pull dell'anteprima di SQL Server 2019 immagine del contenitore Linux dall'Hub Docker.Pull the SQL Server 2019 preview Linux container image from Docker Hub.

    sudo docker pull mcr.microsoft.com/mssql/server:2019-CTP3.1-ubuntu
    
    docker pull mcr.microsoft.com/mssql/server:2019-CTP3.1-ubuntu
    
    docker pull mcr.microsoft.com/mssql/server:2019-CTP3.1-ubuntu
    

    Suggerimento

    Questa Guida introduttiva Usa l'anteprima di SQL Server 2019 immagine Docker.This quickstart uses the SQL Server 2019 preview Docker image. Se si vuole eseguire l'immagine di SQL Server 2017, vedere la versione di SQL Server 2017 di questo articolo.If you want to run the SQL Server 2017 image, see the SQL Server 2017 version of this article.

    Il comando precedente esegue il pull l'immagine del contenitore SQL Server 2019 anteprima basata su Ubuntu.The previous command pulls the SQL Server 2019 preview container image based on Ubuntu. Per usare invece le immagini contenitore basate su RedHat, vedere le immagini contenitore basate su RHEL eseguire.To instead use container images based on RedHat, see Run RHEL-based container images. Per vedere tutte le immagini disponibili, vedere la pagina mssql-server-linux dell'hub Docker.To see all available images, see the mssql-server-linux Docker hub page.

    Per i comandi di bash in questo articolo, sudo viene usato.For the bash commands in this article, sudo is used. In MacOS, sudo potrebbe non essere necessaria.On MacOS, sudo might not be required. In Linux, se non si desidera utilizzare sudo per eseguire Docker, è possibile configurare un docker gruppo e aggiungere utenti a tale gruppo.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. Per altre informazioni, vedere passaggi di post-installazione per Linux.For more information, see Post-installation steps for Linux.

  2. Per eseguire l'immagine del contenitore con Docker, è possibile usare il comando seguente da una shell Bash (Linux/macOS) o da un prompt dei comandi PowerShell con privilegi elevati.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-CTP3.1-ubuntu
    
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong!Passw0rd>" `
       -p 1433:1433 --name sql1 `
       -d mcr.microsoft.com/mssql/server:2019-CTP3.1-ubuntu
    
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong!Passw0rd>" `
       -p 1433:1433 --name sql1 `
       -d mcr.microsoft.com/mssql/server:2019-CTP3.1-ubuntu
    

    Nota

    La password deve essere conforme ai criteri password predefiniti di SQL Server, altrimenti il contenitore non potrà configurare SQL Server e smetterà di funzionare.The password should follow the SQL Server default password policy, otherwise the container can not setup SQL server and will stop working. Per impostazione predefinita, la password deve contenere almeno 8 caratteri e contenere caratteri di tre delle quattro categorie seguenti: Lettere maiuscole, lettere minuscole, cifre in Base 10 e simboli.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. È possibile esaminare il log degli errori eseguendo il comando docker logs.You can examine the error log by executing the docker logs command.

    Nota

    Per impostazione predefinita, viene creato un contenitore con l'edizione Developer Preview di SQL Server 2019.By default, this creates a container with the Developer edition of SQL Server 2019 preview.

    La tabella seguente offre una descrizione dei parametri dell'esempio docker run precedente:The following table provides a description of the parameters in the previous docker run example:

    ParametroParameter DescrizioneDescription
    -e 'ACCEPT_EULA=Y'-e 'ACCEPT_EULA=Y' Impostare la variabile ACCEPT_EULA su qualsiasi valore per confermare l'accettazione delle condizioni di licenza .Set the ACCEPT_EULA variable to any value to confirm your acceptance of the End-User Licensing Agreement. Impostazione obbligatoria per l'immagine di SQL Server.Required setting for the SQL Server image.
    -e 'SA_PASSWORD=<YourStrong!Passw0rd>'-e 'SA_PASSWORD=<YourStrong!Passw0rd>' Specificare la password complessa composta da almeno 8 caratteri e conforme ai requisiti per le password di SQL Server.Specify your own strong password that is at least 8 characters and meets the SQL Server password requirements. Impostazione obbligatoria per l'immagine di SQL Server.Required setting for the SQL Server image.
    -p 1433:1433-p 1433:1433 Eseguire il mapping di una porta TCP nell'ambiente host (primo valore) con una porta TCP nel contenitore (secondo valore).Map a TCP port on the host environment (first value) with a TCP port in the container (second value). In questo esempio, SQL Server è in ascolto sulla porta TCP 1433 nel contenitore e questa funzionalità è esposta alla porta 1433, nell'host.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 Specificare un nome personalizzato per il contenitore, invece di un nome generato in modo casuale.Specify a custom name for the container rather than a randomly generated one. Se si eseguono più contenitori, non è possibile riutilizzare questo stesso nome.If you run more than one container, you cannot reuse this same name.
    mcr.microsoft.com/mssql/server:2019-CTP3.1-ubuntumcr.microsoft.com/mssql/server:2019-CTP3.1-ubuntu L'immagine del contenitore SQL Server su Linux CTP3.1 2019.The SQL Server 2019 CTP3.1 Linux container image.
  3. Per visualizzare i contenitori di Docker, usare il comando docker ps.To view your Docker containers, use the docker ps command.

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

    L'output risultante dovrebbe essere simile allo screenshot seguente:You should see output similar to the following screenshot:

    Output del comando ps di Docker

  4. Se nella colonna STATUS è impostato lo statoUp, SQL Server è in esecuzione nel contenitore e in ascolto sulla porta specificata nella colonna PORTS.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. Se la colonna STATUS del contenitore di SQL Server è impostata su Exited, vedere la sezione relativa alla risoluzione dei problemi della guida alla configurazione.If the STATUS column for your SQL Server container shows Exited, see the Troubleshooting section of the configuration guide.

Anche il parametro -h (nome host) è utile, ma non viene usato in questa esercitazione per semplicità.The -h (host name) parameter is also useful, but it is not used in this tutorial for simplicity. Cambia il nome interno del contenitore sostituendolo con un valore personalizzato.This changes the internal name of the container to a custom value. È il nome che viene restituito nella query Transact-SQL seguente:This is the name you'll see returned in the following Transact-SQL query:

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

L'impostazione di -h e --name sullo stesso valore è un buon modo per identificare facilmente il contenitore di destinazione.Setting -h and --name to the same value is a good way to easily identify the target container.

Modificare la password dell'amministratore di sistemaChange the SA password

L'account SA è un amministratore di sistema dell'istanza di SQL Server creato durante l'installazione.The SA account is a system administrator on the SQL Server instance that gets created during setup. Dopo aver creato il contenitore SQL Server, la variabile di ambiente MSSQL_SA_PASSWORD specificata diventa individuabile eseguendo echo $MSSQL_SA_PASSWORD nel contenitore.After creating your SQL Server container, the MSSQL_SA_PASSWORD environment variable you specified is discoverable by running echo $MSSQL_SA_PASSWORD in the container. Per motivi di sicurezza, modificare la password dell'amministratore di sistema.For security purposes, change your SA password.

  1. Scegliere una password complessa da usare per l'utente SA.Choose a strong password to use for the SA user.

  2. Usare docker exec per eseguire sqlcmd per modificare la password usando Transact-SQL.Use docker exec to run sqlcmd to change the password using Transact-SQL. Nell'esempio seguente, sostituire la vecchia password <YourStrong!Passw0rd>e la nuova password, <YourNewStrong!Passw0rd>, con i propri valori di password.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>'"
    

Connessione a SQL ServerConnect to SQL Server

La procedura seguente usa lo strumento da riga di comando di SQL Server, sqlcmd, all'interno del contenitore per stabilire la connessione a SQL Server.The following steps use the SQL Server command-line tool, sqlcmd, inside the container to connect to SQL Server.

  1. Usare il comando docker exec -it per avviare una shell Bash interattiva all'interno del contenitore in esecuzione.Use the docker exec -it command to start an interactive bash shell inside your running container. Nell'esempio seguente sql1 è il nome specificato dal parametro --namequando è stato creato il contenitore.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. Una volta all'interno del contenitore, eseguire la connessione in locale con sqlcmd.Once inside the container, connect locally with sqlcmd. Sqlcmd non è incluso nel percorso per impostazione predefinita, quindi occorre specificare il percorso completo.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>'
    

    Suggerimento

    È possibile omettere la password nella riga di comanda perché sia richiesto di essere immessa.You can omit the password on the command-line to be prompted to enter it.

  3. Se la connessione viene eseguita correttamente, il prompt dei comandi sqlcmd sarà: 1>.If successful, you should get to a sqlcmd command prompt: 1>.

Creare i dati e recuperarli tramite queryCreate and query data

Nelle sezioni seguenti viene descritto l'uso di sqlcmd e Transact-SQL per creare un nuovo database, aggiungere dati ed eseguire una query semplice.The following sections walk you through using sqlcmd and Transact-SQL to create a new database, add data, and run a simple query.

Creare un nuovo databaseCreate a new database

La seguente procedura consente di creare un nuovo database denominato TestDB.The following steps create a new database named TestDB.

  1. Dal prompt dei comandi sqlcmd incollare il comando seguente di Transact-SQL per creare un database di test:From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:

    CREATE DATABASE TestDB
    
  2. Nella riga successiva scrivere una query perché vengano restituiti i nomi di tutti database nel server: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. I due comandi precedenti non sono stati eseguiti immediatamente.The previous two commands were not executed immediately. È necessario digitare GO in una nuova riga per eseguire i comandi precedenti:You must type GO on a new line to execute the previous commands:

    GO
    

Inserire i datiInsert data

Creare poi una nuova tabella Inventory e inserire due nuove righe.Next create a new table, Inventory, and insert two new rows.

  1. Dal prompt dei comandi sqlcmd spostare il contesto nel nuovo database TestDB:From the sqlcmd command prompt, switch context to the new TestDB database:

    USE TestDB
    
  2. Creare una nuova tabella denominata Inventory:Create new table named Inventory:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. Inserire i dati nella nuova tabella:Insert data into the new table:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. Digitare GO per eseguire i comandi precedenti:Type GO to execute the previous commands:

    GO
    

Selezionare i datiSelect data

A questo punto, eseguire una query per restituire i dati dalla tabella Inventory.Now, run a query to return data from the Inventory table.

  1. Dal prompt dei comandi sqlcmd immettere una query che restituisca le righe dalla tabella Inventory che ne contiene oltre 152: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. Eseguire il comando:Execute the command:

    GO
    

Uscire dal prompt dei comandi sqlcmdExit the sqlcmd command prompt

  1. Per terminare la sessione sqlcmd, digitare QUIT:To end your sqlcmd session, type QUIT:

    QUIT
    
  2. Per uscire dal prompt dei comandi interattivo nel contenitore, digitare exit.To exit the interactive command-prompt in your container, type exit. Dopo la chiusura della shell Bash interattiva, il contenitore continua l'esecuzione.Your container continues to run after you exit the interactive bash shell.

Eseguire la connessione dall'esterno del contenitoreConnect from outside the container

È anche possibile connettersi all'istanza di SQL Server nel computer che esegue Docker da uno strumento esterno Linux, Windows o macOS che supporti le connessioni SQL.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.

La procedura seguente usa sqlcmd all'esterno del contenitore per stabilire la connessione a SQL Server in esecuzione nel contenitore.The following steps use sqlcmd outside of your container to connect to SQL Server running in the container. Questa procedura presuppone che gli strumenti da riga di comando di SQL Server siano già installati all'esterno del contenitore.These steps assume that you already have the SQL Server command-line tools installed outside of your container. Gli stessi principi valgono quando si usano altri strumenti, ma il processo di connessione è univoco per ogni strumento.The same principles apply when using other tools, but the process of connecting is unique to each tool.

  1. Trovare l'indirizzo IP del computer che ospita il contenitore.Find the IP address for the machine that hosts your container. Su Linux usare ifconfig o ip addr. Su Windows usare ipconfig.On Linux, use ifconfig or ip addr. On Windows, use ipconfig.

  2. Per questo esempio, installare il sqlcmd tool nel computer client.For this example, install the sqlcmd tool on your client machine. Per altre informazioni, vedere installarvi Windows sqlcmd oppure installare sqlcmd in Linux.For more information, see Install sqlcmd on Windows or Install sqlcmd on Linux.

  3. Eseguire sqlcmd specificando l'indirizzo IP e la porta mappata alla porta 1433 nel contenitore.Run sqlcmd specifying the IP address and the port mapped to port 1433 in your container. In questo esempio, che è la stessa porta, la porta 1433, nel computer host.In this example, that is the same port, 1433, on the host machine. Se è stata specificata un'altra porta mappata nel computer host, è necessario utilizzarlo qui.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. Eseguire i comandi Transact-SQL.Run Transact-SQL commands. Al termine, digitare QUIT.When finished, type QUIT.

Altri strumenti usati comunemente per connettersi a SQL Server sono:Other common tools to connect to SQL Server include:

Rimuovere il contenitoreRemove your container

Se si vuole rimuovere il contenitore di SQL Server usato in questa esercitazione, eseguire i comandi seguenti: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

Avviso

Se si arresta e si rimuove un contenitore, i dati di SQL Server eventualmente presenti nel contenitore vengono eliminati in modo definitivo.Stopping and removing a container permanently deletes any SQL Server data in the container. Se occorre conservare i dati, creare un file di backup e copiarlo all'esterno del contenitore oppure usare una tecnica di persistenza dei dati del contenitore.If you need to preserve your data, create and copy a backup file out of the container or use a container data persistence technique.

Demo di DockerDocker demo

Se, dopo aver provato a usare l'immagine del contenitore di SQL Server per Docker, si vuole sapere come si può usare questo strumento per migliorare le attività di sviluppo e test,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. il video seguente illustra l'uso di Docker in uno scenario di integrazione continua e distribuzione.The following video shows how Docker can be used in a continuous integration and deployment scenario.

Passaggi successiviNext steps

Per un'esercitazione sul ripristino dei file di backup di database in un contenitore, vedere Restore a SQL Server database in a Linux Docker container (Ripristinare un database di SQL Server in un contenitore Docker 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. Per esplorare altri scenari, quali l'esecuzione di più contenitori, la persistenza dei dati e la risoluzione dei problemi, vedere immagini del contenitore configura SQL Server in Docker.To explore other scenarios, such as running multiple containers, data persistence, and troubleshooting, see Configure SQL Server container images on Docker.

Nel repository GitHub mssql-docker sono inoltre disponibili risorse, feedback e documentazione su problemi noti.Also, check out the mssql-docker GitHub repository for resources, feedback, and known issues.