Inicio rápido: Ejecución de imágenes de contenedor de SQL Server con DockerQuickstart: Run SQL Server container images with Docker

Se aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) : LinuxSe aplica a:Applies to: síSQL ServerSQL Server (todas las versiones admitidas) yesSQL ServerSQL Server (all supported versions) - Linux

Nota

Los ejemplos que se muestran a continuación usan docker.exe, pero la mayoría de estos comandos también funcionan con Podman.The examples shown below use the docker.exe but most of these commands also work with Podman. Proporciona la CLI similar al motor de contenedor de Docker.It provides the CLI similar to Docker container Engine. Puede leer más sobre Podman aquí.You can read more about podman here.

En este inicio rápido, deberá usar Docker para extraer y ejecutar la imagen de contenedor de 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. A continuación, tendrá que conectar con sqlcmd para crear la primera base de datos y ejecutar consultas.Then connect with sqlcmd to create your first database and run queries.

Sugerencia

Si quiere crear contenedores de SQL Server 2019, vea la versión de SQL Server 2019 de este artículo.If you want to run SQL Server 2019 containers, see the SQL Server 2019 version of this article.

Nota

A partir de SQL Server 2019 CU3, se admite Ubuntu 18.04.Starting with SQL Server 2019 CU3, Ubuntu 18.04 is supported.

En este inicio rápido, usará Docker para extraer y ejecutar la imagen de contenedor de SQL Server 2019, mssql-server.In this quickstart, you use Docker to pull and run the SQL Server 2019 container image, mssql-server. A continuación, tendrá que conectar con sqlcmd para crear la primera base de datos y ejecutar consultas.Then connect with sqlcmd to create your first database and run queries.

Sugerencia

En este inicio rápido se crean contenedores de SQL Server 2019.This quickstart creates SQL Server 2019 containers. Si prefiere crear contenedores de SQL Server 2017, vea la versión de SQL Server 2017 de este artículo.If you prefer to create SQL Server 2017 containers, see the SQL Server 2017 version of this article.

Esta imagen se compone de SQL Server, que se ejecuta en un sistema Linux basado en Ubuntu 18.04.This image consists of SQL Server running on Linux based on Ubuntu 18.04. Se puede usar junto al motor de Docker 1.8 o versiones posteriores en Linux, o bien en Docker en Mac y Windows.It can be used with the Docker Engine 1.8+ on Linux or on Docker for Mac/Windows. Este inicio rápido se centra específicamente en el uso de la imagen de SQL Server en Linux.This quickstart specifically focuses on using the SQL Server on Linux image. No trataremos la imagen de Windows, pero puede obtener más información sobre esta en la página mssql-server-windows-developer de Docker Hub.The Windows image is not covered, but you can learn more about it on the mssql-server-windows-developer Docker Hub page.

Requisitos previosPrerequisites

Extracción y ejecución de la imagen de contenedor 2017Pull and run the 2017 container image

Antes de iniciar los pasos siguientes, asegúrese de que ha seleccionado el shell preferido (Bash, PowerShell o cmd) en la parte superior de este artículo.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. Extraiga la imagen de contenedor de Linux de SQL Server 2017 desde 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
    

    Sugerencia

    Si quiere crear contenedores de SQL Server 2019, vea la versión de SQL Server 2019 de este artículo.If you want to run SQL Server 2019 containers, see the SQL Server 2019 version of this article.

    En el comando anterior, se extrae la última imagen de contenedor de SQL Server 2017.The previous command pulls the latest SQL Server 2017 container image. Si quiere extraer una imagen específica, agregue dos puntos y el nombre de etiqueta (por ejemplo, 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). Para ver todas las imágenes disponibles, vea la página de Docker Hub de mssql-server.To see all available images, see the mssql-server Docker hub page.

    En los comandos de Bash de este artículo se usa sudo.For the bash commands in this article, sudo is used. En macOS, es posible que no se necesite sudo.On macOS, sudo might not be required. En Linux, si no quiere usar sudo para ejecutar Docker, puede configurar un grupo de Docker y agregarle usuarios.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. Para obtener más información, vea Pasos posteriores a la instalación para Linux.For more information, see Post-installation steps for Linux.

  2. Para ejecutar la imagen de contenedor con Docker, puede usar el siguiente comando desde un shell de Bash (Linux y macOS), o bien una línea de comandos de PowerShell con privilegios elevados.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 -h sql1 \
       -d \
       mcr.microsoft.com/mssql/server:2017-latest
    

    Nota

    Si usa PowerShell Core, reemplace las comillas dobles por comillas simples.If you are using PowerShell Core, replace the double quotes with single quotes.

    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 -h 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 -h sql1 `
       -d `
       mcr.microsoft.com/mssql/server:2017-latest
    

    Nota

    La contraseña debe seguir la directiva de contraseñas predeterminada de SQL Server. En caso contrario, el contenedor no podrá instalar SQL Server y dejará de funcionar.The password should follow the SQL Server default password policy, otherwise the container can not setup SQL server and will stop working. De forma predeterminada, la contraseña debe tener al menos 8 caracteres y contener caracteres de tres de los cuatro conjuntos siguientes: Letras mayúsculas, letras minúsculas, dígitos de Base 10 y símbolos.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. Puede examinar el registro de errores ejecutando el comando docker logs.You can examine the error log by executing the docker logs command.

    De forma predeterminada, se creará un contenedor con la edición para desarrolladores de SQL Server 2017.By default, this creates a container with the Developer edition of SQL Server 2017. El proceso para ejecutar las ediciones de producción en contenedores es ligeramente diferente.The process for running production editions in containers is slightly different. Para obtener más información, vea Run production container image (Ejecutar imágenes de contenedor de producción).For more information, see Run production container images.

    En la tabla siguiente, se proporciona una descripción de los parámetros del ejemplo de docker run anterior:The following table provides a description of the parameters in the previous docker run example:

    ParámetroParameter DescripciónDescription
    -e "ACCEPT_EULA=Y"-e "ACCEPT_EULA=Y" Establezca la variable ACCEPT_EULA en cualquier valor para confirmar que acepta el Contrato de licencia de usuario final.Set the ACCEPT_EULA variable to any value to confirm your acceptance of the End-User Licensing Agreement. Configuración requerida para la imagen de SQL Server.Required setting for the SQL Server image.
    -e "SA_PASSWORD=<YourStrong@Passw0rd\>"-e "SA_PASSWORD=<YourStrong@Passw0rd\>" Especifique una contraseña segura propia con al menos 8 caracteres y que cumpla los requisitos de contraseña de SQL Server.Specify your own strong password that is at least 8 characters and meets the SQL Server password requirements. Configuración requerida para la imagen de SQL Server.Required setting for the SQL Server image.
    -p 1433:1433-p 1433:1433 Asigne un puerto TCP en el entorno de host (el primer valor) a un puerto TCP en el contenedor (el segundo valor).Map a TCP port on the host environment (first value) with a TCP port in the container (second value). En este ejemplo, SQL Server escucha en TCP 1433 en el contenedor y se expone al puerto 1433 del 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 Especifique un nombre personalizado para el contenedor en lugar de uno generado aleatoriamente.Specify a custom name for the container rather than a randomly generated one. Si ejecuta más de un contenedor, no podrá usar el mismo nombre.If you run more than one container, you cannot reuse this same name.
    -h sql1-h sql1 Cuando se usa para establecer explícitamente el nombre de host del contenedor, si no se especifica, el valor predeterminado es el identificador del contenedor, que es un GUID del sistema generado aleatoriamente.Used to explicitly set the container hostname, if you don't specify it, it defaults to the container ID which is a randomly generated system GUID.
    -d-d Ejecute el contenedor en segundo plano (demonio).Run the container in the background (daemon)
    mcr.microsoft.com/mssql/server:2017-latestmcr.microsoft.com/mssql/server:2017-latest La imagen de contenedor de SQL Server 2017 para Linux.The SQL Server 2017 Linux container image.
  3. Para ver los contenedores de Docker, use el comando docker ps.To view your Docker containers, use the docker ps command.

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

    Debería ver un resultado similar al de la captura de pantalla siguiente:You should see output similar to the following screenshot:

    Resultado del comando docker ps

  4. Si la columna ESTADO muestra el estado Activo, esto indica que SQL Server se está ejecutando en el contenedor y que está escuchando en el puerto especificado en la columna PUERTOS.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. Si la columna ESTADO de su contenedor de SQL Server muestra Cerrado, consulte la sección Solución de problemas de la guía de configuración.If the STATUS column for your SQL Server container shows Exited, see the Troubleshooting section of the configuration guide.

El parámetro -h (nombre de host), tal y como se indicó anteriormente, cambia el nombre interno del contenedor a un valor personalizado.The -h (host name) parameter as discussed above, changes the internal name of the container to a custom value. Este es el nombre que verá que se devuelve en la siguiente consulta de Transact-SQL:This is the name you'll see returned in the following Transact-SQL query:

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

Establecer -h y --name en el mismo valor es una buena manera de identificar fácilmente el contenedor de destino.Setting -h and --name to the same value is a good way to easily identify the target container.

  1. Como paso final, cambie la contraseña de administrador del sistema porque SA_PASSWORD se ve en la salida de ps -eax y se almacena en la variable de entorno con el mismo nombre.As a final step, change your SA password because the SA_PASSWORD is visible in ps -eax output and stored in the environment variable of the same name. Vea los pasos siguientes.See steps below.

Extracción y ejecución de la imagen de contenedor 2019Pull and run the 2019 container image

Antes de iniciar los pasos siguientes, asegúrese de que ha seleccionado el shell preferido (Bash, PowerShell o cmd) en la parte superior de este artículo.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. Extraiga la imagen de contenedor de Linux de SQL Server 2019 desde Microsoft Container Registry.Pull the SQL Server 2019 Linux container image from Microsoft Container Registry.

    sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
    

    Nota

    Si usa PowerShell Core, reemplace las comillas dobles por comillas simples.If you are using PowerShell Core, replace the double quotes with single quotes.

    docker pull mcr.microsoft.com/mssql/server:2019-latest
    
    docker pull mcr.microsoft.com/mssql/server:2019-latest
    

    Sugerencia

    En este inicio rápido se usa la imagen de Docker de SQL Server 2019.This quickstart uses the SQL Server 2019 Docker image. Si quiere ejecutar la imagen de SQL Server 2017, vea la versión de SQL Server 2017 de este artículo.If you want to run the SQL Server 2017 image, see the SQL Server 2017 version of this article.

    El comando anterior extrae la imagen de contenedor de SQL Server 2019 basada en Ubuntu.The previous command pulls the SQL Server 2019 container image based on Ubuntu. Para usar en su lugar imágenes de contenedor basadas en RedHat, vea Ejecución de imágenes de contenedor basadas en RHEL.To instead use container images based on RedHat, see Run RHEL-based container images. Para ver todas las imágenes disponibles, vea la página mssql-server-linux de Docker Hub.To see all available images, see the mssql-server-linux Docker hub page.

    En los comandos de Bash de este artículo se usa sudo.For the bash commands in this article, sudo is used. En macOS, es posible que no se necesite sudo.On macOS, sudo might not be required. En Linux, si no quiere usar sudo para ejecutar Docker, puede configurar un grupo de Docker y agregarle usuarios.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. Para obtener más información, vea Pasos posteriores a la instalación para Linux.For more information, see Post-installation steps for Linux.

  2. Para ejecutar la imagen de contenedor con Docker, puede usar el siguiente comando desde un shell de Bash (Linux y macOS), o bien una línea de comandos de PowerShell con privilegios elevados.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 -h sql1 \
       -d mcr.microsoft.com/mssql/server:2019-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 -h sql1 `
       -d mcr.microsoft.com/mssql/server:2019-latest
    
    docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<YourStrong@Passw0rd>" `
       -p 1433:1433 --name sql1 -h sql1 `
       -d mcr.microsoft.com/mssql/server:2019-latest
    

    Nota

    La contraseña debe seguir la directiva de contraseñas predeterminada de SQL Server. En caso contrario, el contenedor no podrá instalar SQL Server y dejará de funcionar.The password should follow the SQL Server default password policy, otherwise the container can not setup SQL server and will stop working. De forma predeterminada, la contraseña debe tener al menos 8 caracteres y contener caracteres de tres de los cuatro conjuntos siguientes: Letras mayúsculas, letras minúsculas, dígitos de Base 10 y símbolos.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. Puede examinar el registro de errores ejecutando el comando docker logs.You can examine the error log by executing the docker logs command.

    De forma predeterminada, se creará un contenedor con la edición para desarrolladores de SQL Server 2019.By default, this creates a container with the Developer edition of SQL Server 2019.

    En la tabla siguiente, se proporciona una descripción de los parámetros del ejemplo de docker run anterior:The following table provides a description of the parameters in the previous docker run example:

    ParámetroParameter DescripciónDescription
    -e "ACCEPT_EULA=Y"-e "ACCEPT_EULA=Y" Establezca la variable ACCEPT_EULA en cualquier valor para confirmar que acepta el Contrato de licencia de usuario final.Set the ACCEPT_EULA variable to any value to confirm your acceptance of the End-User Licensing Agreement. Configuración requerida para la imagen de SQL Server.Required setting for the SQL Server image.
    -e "SA_PASSWORD=<YourStrong@Passw0rd\>"-e "SA_PASSWORD=<YourStrong@Passw0rd\>" Especifique una contraseña segura propia con al menos 8 caracteres y que cumpla los requisitos de contraseña de SQL Server.Specify your own strong password that is at least 8 characters and meets the SQL Server password requirements. Configuración requerida para la imagen de SQL Server.Required setting for the SQL Server image.
    -p 1433:1433-p 1433:1433 Asigne un puerto TCP en el entorno de host (el primer valor) a un puerto TCP en el contenedor (el segundo valor).Map a TCP port on the host environment (first value) with a TCP port in the container (second value). En este ejemplo, SQL Server escucha en TCP 1433 en el contenedor y se expone al puerto 1433 del 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 Especifique un nombre personalizado para el contenedor en lugar de uno generado aleatoriamente.Specify a custom name for the container rather than a randomly generated one. Si ejecuta más de un contenedor, no podrá usar el mismo nombre.If you run more than one container, you cannot reuse this same name.
    -h sql1-h sql1 Cuando se usa para establecer explícitamente el nombre de host del contenedor, si no se especifica, el valor predeterminado es el identificador del contenedor, que es un GUID del sistema generado aleatoriamente.Used to explicitly set the container hostname, if you don't specify it, it defaults to the container ID which is a randomly generated system GUID.
    mcr.microsoft.com/mssql/server:2019-latestmcr.microsoft.com/mssql/server:2019-latest Imagen de contenedor de Ubuntu Linux de SQL Server 2019.The SQL Server 2019 Ubuntu Linux container image.
  3. Para ver los contenedores de Docker, use el comando docker ps.To view your Docker containers, use the docker ps command.

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

    Debería ver un resultado similar al de la captura de pantalla siguiente:You should see output similar to the following screenshot:

    Resultado del comando docker ps

  4. Si la columna ESTADO muestra el estado Activo, esto indica que SQL Server se está ejecutando en el contenedor y que está escuchando en el puerto especificado en la columna PUERTOS.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. Si en la columna ESTADO del contenedor de SQL Server se muestra Cerrado, vea Solución de problemas de contenedores de Docker de SQL Server.If the STATUS column for your SQL Server container shows Exited, see Troubleshooting SQL Server Docker containers.

El parámetro -h (nombre de host), tal y como se indicó anteriormente, cambia el nombre interno del contenedor a un valor personalizado.The -h (host name) parameter as discussed above, changes the internal name of the container to a custom value. Esto cambia el nombre interno del contenedor a un valor personalizado.This changes the internal name of the container to a custom value. Este es el nombre que verá que se devuelve en la siguiente consulta de Transact-SQL:This is the name you'll see returned in the following Transact-SQL query:

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

Establecer -h y --name en el mismo valor es una buena manera de identificar fácilmente el contenedor de destino.Setting -h and --name to the same value is a good way to easily identify the target container.

  1. Como paso final, cambie la contraseña de administrador del sistema porque SA_PASSWORD se ve en la salida de ps -eax y se almacena en la variable de entorno con el mismo nombre.As a final step, change your SA password because the SA_PASSWORD is visible in ps -eax output and stored in the environment variable of the same name. Vea los pasos siguientes.See steps below.

Cambio de la contraseña de SAChange the SA password

La cuenta SA es un administrador del sistema en la instancia de SQL Server que se crea durante la instalación.The SA account is a system administrator on the SQL Server instance that gets created during setup. Después de crear el contenedor de SQL Server, la variable de entorno SA_PASSWORD especificada se reconoce mediante la ejecución de echo $SA_PASSWORD en el contenedor.After creating your SQL Server container, the SA_PASSWORD environment variable you specified is discoverable by running echo $SA_PASSWORD in the container. Por motivos de seguridad, cambie la contraseña de administrador del sistema.For security purposes, change your SA password.

  1. Elija una contraseña segura que se usará para el usuario SA.Choose a strong password to use for the SA user.

  2. Use docker exec para ejecutar sqlcmd a fin de cambiar la contraseña mediante Transact-SQL.Use docker exec to run sqlcmd to change the password using Transact-SQL. En el ejemplo siguiente, reemplace la contraseña anterior, <YourStrong!Passw0rd>, y la nueva contraseña, <YourNewStrong!Passw0rd>, por sus propios valores de contraseña.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>'"
    

Conectar a SQL ServerConnect to SQL Server

En los pasos siguientes se usa la herramienta de línea de comandos sqlcmd de SQL Server, dentro del contenedor para conectarse a SQL Server.The following steps use the SQL Server command-line tool, sqlcmd, inside the container to connect to SQL Server.

  1. Use el comando docker exec -it para iniciar un shell de Bash interactivo dentro de su contenedor en ejecución.Use the docker exec -it command to start an interactive bash shell inside your running container. En el ejemplo siguiente, el parámetro --name especifica el nombre de sql1 al crear el contenedor.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 vez dentro del contenedor, conecte localmente con sqlcmd.Once inside the container, connect locally with sqlcmd. Sqlcmd no está en la ruta de acceso de forma predeterminada, por lo que deberá especificar la ruta de acceso completa.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>"
    

    Sugerencia

    Puede omitir la contraseña en la línea de comandos para que se le solicite escribirla.You can omit the password on the command-line to be prompted to enter it.

  3. Si se realiza correctamente, debe ver un símbolo de sistema de sqlcmd: 1>.If successful, you should get to a sqlcmd command prompt: 1>.

Creación y consulta de datosCreate and query data

En las secciones siguientes se le guía por el uso de sqlcmd y Transact-SQL para crear una base de datos, agregar datos y ejecutar una consulta.The following sections walk you through using sqlcmd and Transact-SQL to create a new database, add data, and run a query.

Creación de una base de datosCreate a new database

En los pasos siguientes se crea una base de datos denominada TestDB.The following steps create a new database named TestDB.

  1. En el símbolo del sistema de sqlcmd, pegue el comando Transact-SQL siguiente para crear una base de datos de prueba:From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:

    CREATE DATABASE TestDB
    
  2. En la línea siguiente, escriba una consulta para devolver el nombre de todas las bases de datos del servidor: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. Los dos comandos anteriores no se ejecutaron de inmediato.The previous two commands were not executed immediately. Escriba GO en una línea nueva para ejecutar los comandos anteriores:Type GO on a new line to execute the previous commands:

    GO
    

Insertar datosInsert data

Luego cree una tabla, Inventory, e inserte dos filas nuevas.Next create a new table, Inventory, and insert two new rows.

  1. En el símbolo del sistema de sqlcmd, cambie el contexto a la nueva base de datos TestDB:From the sqlcmd command prompt, switch context to the new TestDB database:

    USE TestDB
    
  2. Cree una tabla llamada Inventory:Create new table named Inventory:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. Inserte datos en la nueva tabla:Insert data into the new table:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. Escriba GO para ejecutar los comandos anteriores:Type GO to execute the previous commands:

    GO
    

Selección de datosSelect data

Ahora ejecute una consulta para devolver datos desde la tabla Inventory.Now, run a query to return data from the Inventory table.

  1. En el símbolo del sistema sqlcmd, escriba una consulta que devuelva filas desde la tabla Inventory donde la cantidad sea mayor que 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. Ejecute el comando:Execute the command:

    GO
    

Salida del símbolo del sistema de sqlcmdExit the sqlcmd command prompt

  1. Para finalizar la sesión de sqlcmd, escriba QUIT:To end your sqlcmd session, type QUIT:

    QUIT
    
  2. Para salir de la línea de comandos interactiva del contenedor, escriba exit.To exit the interactive command-prompt in your container, type exit. El contenedor continuará ejecutándose después de salir del shell de Bash interactivo.Your container continues to run after you exit the interactive bash shell.

Conectarse desde fuera del contenedorConnect from outside the container

También puede conectarse a la instancia de SQL Server en la máquina de Docker desde cualquier herramienta externa de Linux, Windows o Mac OS que admita conexiones de 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.

En los pasos siguientes, se usa sqlcmd fuera de su contenedor para conectarse a la instancia de SQL Server que se ejecuta en el contenedor.The following steps use sqlcmd outside of your container to connect to SQL Server running in the container. En estos pasos, se presupone que ya dispone de las herramientas de línea de comandos de SQL Server instaladas fuera de su contenedor.These steps assume that you already have the SQL Server command-line tools installed outside of your container. Se aplican los mismos principios que al usar otras herramientas, pero el proceso de conexión es único para cada herramienta.The same principles apply when using other tools, but the process of connecting is unique to each tool.

  1. Busque la dirección IP de la máquina host de su contenedor.Find the IP address for the machine that hosts your container. En Linux, use ifconfig o ip addr. En Windows, use ipconfig.On Linux, use ifconfig or ip addr. On Windows, use ipconfig.

  2. En este ejemplo, instale la herramienta sqlcmd en el equipo cliente.For this example, install the sqlcmd tool on your client machine. Para obtener más información, vea Instalación de sqlcmd en Windows o Instalación de sqlcmd en Linux.For more information, see Install sqlcmd on Windows or Install sqlcmd on Linux.

  3. Ejecute sqlcmd especificando la dirección IP y el puerto asignado al puerto 1433 en el contenedor.Run sqlcmd specifying the IP address and the port mapped to port 1433 in your container. En este ejemplo se trata del mismo puerto, 1433, que en el equipo host.In this example, that is the same port, 1433, on the host machine. Si ha especificado otro puerto asignado en el equipo host, se usa aquí.If you specified a different mapped port on the host machine, you would use it here. También tendrá que abrir el puerto de entrada adecuado en el firewall para permitir la conexión.You will also need to open the appropriate inbound port on your firewall to allow the connection.

    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. Ejecute los comandos Transact-SQL.Run Transact-SQL commands. Cuando termine, escriba QUIT.When finished, type QUIT.

Estas son otras herramientas de uso común para conectarse a SQL Server:Other common tools to connect to SQL Server include:

Quitar el contenedorRemove your container

Si quiere quitar el contenedor de SQL Server que se usa en este tutorial, ejecute los comandos siguientes: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

Advertencia

Al detener y quitar un contenedor, se eliminarán permanentemente los datos de SQL Server que contenga.Stopping and removing a container permanently deletes any SQL Server data in the container. Si tiene que conservar sus datos, cree un archivo de copia de seguridad y cópielo en una ubicación externa al contenedor, o bien use una técnica de persistencia de datos de contenedor.If you need to preserve your data, create and copy a backup file out of the container or use a container data persistence technique.

Demostración de DockerDocker demo

Tras haber intentado usar la imagen de contenedor de SQL Server en Docker, puede que quiera saber cómo usar Docker para mejorar el desarrollo y las pruebas.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. En el vídeo siguiente se muestra cómo se puede usar Docker en un escenario de implementación e integración continuas.The following video shows how Docker can be used in a continuous integration and deployment scenario.

Pasos siguientesNext steps

Para ver un tutorial sobre cómo restaurar archivos de copia de seguridad de bases de datos en un contenedor, consulte Restore a SQL Server database in a Linux Docker container (Restaurar una base de datos de SQL Server en un contenedor de Docker en 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. Explore otros escenarios, como la ejecución de varios contenedores, la persistencia de datos y la solución de problemas.Explore other scenarios, such as running multiple containers, data persistence, and troubleshooting.

También puede consultar el repositorio de Github mssql-docker para ver una serie de recursos, comentarios y problemas conocidos.Also, check out the mssql-docker GitHub repository for resources, feedback, and known issues.