Run Microsoft Sql Server On Mac Using Docker

I previously explained how to install SQL Server on a Mac via a Docker container. When I wrote that, SQL Server 2017 was the latest version of SQL Server, and it had just been made available for Linux and Docker (which means that you can also install it on MacOS systems).

Is the sql server running inside a container? Is the connecting code also running inside a container? If yes to both, are they on the same network, and if not, is the server's SQL port exposed? This tutorial demonstrates how to move and restore a SQL Server backup file into a SQL Server 2017 Linux container image running on Docker. This tutorial demonstrates how to move and restore a SQL Server backup file into a SQL Server 2019 Linux container image running on Docker. Pull and run the. Nov 19, 2018  Running SQL Server with Docker on the Mac Installing SQL Server in a Docker Container. Accessing SQL Server on a Mac. We have now 2019 up and running in a Docker Container. Restoring your first Database. When you look back to the previous picture. Running SQL Server natively on a Mac. Dec 12, 2017 Since I run Windows 10 on my developer machine it need to setup SQL Server in a Windows Docker container and I figured out, that there some pitfalls that I came along. So I though it’s maybe benefitial to write a Step by step setup guide. Step 1: Download and Setup Docker for Windows.

Nov 06, 2019  First I will start with installing a school server on Mac then I will show you how to install a SQL Server on Windows. In this course you’ll be learning is cute using Microsoft a school server. I will show you how to install a school server on both Mac as well as windows. Jan 15, 2018 As you can see, it is trivially easy to get up and running with MS SQL Server on Linux using Docker. In this article we pulled and ran the latest version of MS SQL Server on Linux and ran a very simple query using PowerShell, SQL Server Management Studio (SSMS) and LINQPad. Aug 03, 2017  03:15 - Pulling the latest docker image for microsoft/mssql-server-linux 04:15 - using docker run to set up my container 04:50 - connecting to the docker container from SSMS installed in.

Run Microsoft Sql Server On Mac Using Docker Windows 7

In late 2018, Microsoft announced SQL Server 2019 Preview, and subsequently announced general release in late 2019. The installation process for SQL Server 2019 is exactly the same as for SQL Server 2017. The only difference is that you need to use the container image for SQL Server 2019 instead of the 2017 image. Here I show you how to do that.

Also, if you already have SQL Server 2017 installed, and you want to install SQL Server 2019 without removing the 2017 version, you’ll need to allocate a different port number on your host. I show you how to do that too.

Docker

The first step is to install Docker. If you already have Docker installed you can skip this step (and jump straight to SQL Server).

Docker is a platform that enables software to run in its own isolated environment. Therefore, SQL Server 2019 can be run on Docker in its own isolated container.

  1. Install Docker

    To download, visit the Docker CE for Mac download page and click Get Docker.

    To install, double-click on the .dmg file and then drag the Docker.app icon to your Application folder.

    Docker installation on a Mac.

  2. Launch Docker

    Launch Docker the same way you’d launch any other application (eg, via the Applications folder, the Launchpad, etc).

    When you open Docker, you might be prompted for your password so that Docker can install its networking components and links to the Docker apps. Go ahead and provide your password, as Docker needs this to run.

  3. Increase the Memory

    By default, Docker will have 2GB of memory allocated to it. I’d suggest increasing it to 4GB if you can.

    To do this:

    1. Select Preferences from the little Docker icon in the top menu
    2. Slide the memory slider up to at least 4GB
    3. Click Apply & Restart

    Microsoft office for mac 2011 30 day trial. Selecting the preferences.

SQL Server

Now that Docker has been installed and configured, we can download and install SQL Server 2019.

  1. Download SQL Server 2019

    Open a Terminal window and run the following command.

    This downloads the latest SQL Server for Linux Docker image to your computer.

    You can also check for the various container image options on the Docker website if you wish.

    Note that, at the time I wrote this article, I used the following image:

    Therefore, all examples below reflect that version.

  2. Launch the Docker Image

    Run the following command to launch an instance of the Docker image you just downloaded:

    Just change Bart to a name of your choosing, and reallyStrongPwd#123 to a password of your choosing.

    If you get a “port already allocated” error, see below.

    Here’s an explanation of the parameters:

    -e 'ACCEPT_EULA=Y'
    The Y shows that you agree with the EULA (End User Licence Agreement). This is required.
    -e 'SA_PASSWORD=reallyStrongPwd#123'
    Required parameter that sets the sa database password.
    -p 1433:1433
    This maps the local port 1433 to port 1433 on the container. The first value is the TCP port on the host environment. The second value is the TCP port in the container.
    --name Bart
    Another optional parameter. This parameter allows you to name the container. This can be handy when stopping and starting your container from the Terminal. You might prefer to give it a more descriptive name like sql_server_2019 or similar.
    -d
    This optional parameter launches the Docker container in daemon mode. This means that it runs in the background and doesn’t need its own Terminal window open. You can omit this parameter to have the container run in its own Terminal window.
    mcr.microsoft.com/mssql/server:2019-CTP3.2-ubuntu
    This tells Docker which image to use.

    Password Strength

    You need to use a strong password. Microsoft says this about the password:

    The password should follow the SQL Server default password policy, otherwise the container can not setup SQL server and will stop working. 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.

    Error – “Port already allocated”?

    If you get an error that says something about “port is already allocated”, then perhaps you already have SQL Server installed on another container that uses that port. In this case, you’ll need to map to a different port on the host.

    Therefore, you could change the above command to something like this:

    In this case I simply changed -p 1433:1433 to -p 1400:1433. Everything else remains the same.

    You may now get an error saying that you need to remove the existing container first. To do that, run the following (but swap Bart with the name of your own container):

    Once removed, you can try running the previous command again.

    Note that if you change the port like I’ve done here, you will probably need to include the port number when connecting to SQL Server from any database tools from your desktop. For example, when connecting via the Azure Data Studio (mentioned below), you can connect by using Localhost,1400 instead of just Localhost. Same with mssql-cli, which is a command line SQL tool.

Check Everything

Now that we’ve done that, we should be good to go. Let’s go through and run a few checks.

  1. Check the Docker container (optional)

    You can type the following command to check that the Docker container is running.

    In my case I get this:

    This tells me that I have two docker containers up and running: one called Bart and the other called Homer.

  2. Connect to SQL Server

    Here we use the SQL Server command line tool called “sqlcmd” inside the container to connect to SQL Server.

    Enter your password if prompted.

    Now that you’re inside the container, connect locally with sqlcmd:

    This should bring you to the sqlcmd prompt 1>.

  3. Run a Quick Test

    Run a quick test to check that SQL Server is up and running. For example, check the SQL Server version by entering this:

    This will bring you to a command prompt 2> on the next line. To execute the query, enter:

    Result:

    If you see a message like this, congratulations — SQL Server is now up and running on your Mac!

    If you prefer to use a GUI to manage SQL Server, read on.

Azure Data Studio

The Azure Data Studio dashboard.

Azure Data Studio is a free GUI management tool that you can use to manage SQL Server on your Mac. You can use it to create and manage databases, write queries, backup and restore databases, and more.

Azure Data Studio is available on Windows, Mac and Linux.

Here are some articles/tutorials I’ve written for Azure Data Studio:

Another Free SQL Server GUI – DBeaver

Another SQL Server GUI tool that you can use on your Mac (and Windows/Linux/Solaris) is DBeaver.

DBeaver is a free, open source database management tool that can be used on most database management systems (such as MySQL, PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, Microsoft Access, Teradata, Firebird, Derby, and more).

I wrote a little introduction to DBeaver, or you can go straight to the DBeaver download page and try it out with your new SQL Server installation.

-->

APPLIES TO: SQL Server (Linux only) Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

In this quickstart, you use Docker to pull and run the SQL Server 2017 container image, mssql-server-linux. Then connect with sqlcmd to create your first database and run queries.

Tip

If you want to run SQL Server 2019 containers, see the SQL Server 2019 version of this article.

Note

Starting with SQL Server 2019 CU3, Ubuntu 18.04 is supported.

In this quickstart, you use Docker to pull and run the SQL Server 2019 container image, mssql-server. Then connect with sqlcmd to create your first database and run queries.

Tip

This quickstart creates SQL Server 2019 containers. If you prefer to create SQL Server 2017 containers, see the SQL Server 2017 version of this article.

This image consists of SQL Server running on Linux based on Ubuntu 18.04. It can be used with the Docker Engine 1.8+ on Linux or on Docker for Mac/Windows. This quickstart specifically focuses on using the SQL Server on linux image. The Windows image is not covered, but you can learn more about it on the mssql-server-windows-developer Docker Hub page.

Prerequisites

  • Docker Engine 1.8+ on any supported Linux distribution or Docker for Mac/Windows. For more information, see Install Docker.
  • Docker overlay2 storage driver. This is the default for most users. If you find that you are not using this storage provider and need to change, please see the instructions and warnings in the docker documentation for configuring overlay2.
  • Minimum of 2 GB of disk space.
  • Minimum of 2 GB of RAM.
  • System requirements for SQL Server on Linux.

Pull and run the container image

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. Pull the SQL Server 2017 Linux container image from Microsoft Container Registry.

    Tip

    If you want to run SQL Server 2019 containers, see the SQL Server 2019 version of this article.

    The previous command pulls the latest SQL Server 2017 container image. 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). To see all available images, see the mssql-server Docker hub page.

    For the bash commands in this article, sudo is used. On macOS, sudo might not be required. 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. For more information, see Post-installation steps for Linux.

  2. To run the container image with Docker, you can use the following command from a bash shell (Linux/macOS) or elevated PowerShell command prompt.

    Note

    The password should follow the SQL Server default password policy, otherwise the container can not setup SQL server and will stop working. 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. You can examine the error log by executing the docker logs command.

    Note

    By default, this creates a container with the Developer edition of SQL Server 2017. The process for running production editions in containers is slightly different. For more information, see Run production container images.

    The following table provides a description of the parameters in the previous docker run example:

    ParameterDescription
    -e 'ACCEPT_EULA=Y'Set the ACCEPT_EULA variable to any value to confirm your acceptance of the End-User Licensing Agreement. Required setting for the SQL Server image.
    -e 'SA_PASSWORD=<YourStrong@Passw0rd>'Specify your own strong password that is at least 8 characters and meets the SQL Server password requirements. Required setting for the SQL Server image.
    -p 1433:1433Map a TCP port on the host environment (first value) with a TCP port in the container (second value). 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 sql1Specify a custom name for the container rather than a randomly generated one. If you run more than one container, you cannot reuse this same name.
    -d mcr.microsoft.com/mssql/server:2017-latestThe SQL Server 2017 Linux container image.
  3. To view your Docker containers, use the docker ps command.

    You should see output similar to the following screenshot:

  4. 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. If the STATUS column for your SQL Server container shows Exited, see the Troubleshooting section of the configuration guide.

The -h (host name) parameter is also useful, but it is not used in this tutorial for simplicity. This changes the internal name of the container to a custom value. This is the name you'll see returned in the following Transact-SQL query:

Setting -h and --name to the same value is a good way to easily identify the target container.

Pull and run the container image

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. Pull the SQL Server 2019 Linux container image from Docker Hub.

    Tip

    This quickstart uses the SQL Server 2019 Docker image. If you want to run the SQL Server 2017 image, see the SQL Server 2017 version of this article.

    The previous command pulls the SQL Server 2019 container image based on Ubuntu. To instead use container images based on RedHat, see Run RHEL-based container images. To see all available images, see the mssql-server-linux Docker hub page.

    For the bash commands in this article, sudo is used. On macOS, sudo might not be required. 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. For more information, see Post-installation steps for Linux.

  2. To run the container image with Docker, you can use the following command from a bash shell (Linux/macOS) or elevated PowerShell command prompt.

    Note

    The password should follow the SQL Server default password policy, otherwise the container can not setup SQL server and will stop working. 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. You can examine the error log by executing the docker logs command.

    Note

    By default, this creates a container with the Developer edition of SQL Server 2019.

    The following table provides a description of the parameters in the previous docker run example:

    ParameterDescription
    -e 'ACCEPT_EULA=Y'Set the ACCEPT_EULA variable to any value to confirm your acceptance of the End-User Licensing Agreement. Required setting for the SQL Server image.
    -e 'SA_PASSWORD=<YourStrong@Passw0rd>'Specify your own strong password that is at least 8 characters and meets the SQL Server password requirements. Required setting for the SQL Server image.
    -p 1433:1433Map a TCP port on the host environment (first value) with a TCP port in the container (second value). 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 sql1Specify a custom name for the container rather than a randomly generated one. If you run more than one container, you cannot reuse this same name.
    mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04The SQL Server 2019 Ubuntu Linux container image.
  3. To view your Docker containers, use the docker ps command.

    You should see output similar to the following screenshot:

  4. 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. If the STATUS column for your SQL Server container shows Exited, see the Troubleshooting section of the configuration guide.

The -h (host name) parameter is also useful, but it is not used in this tutorial for simplicity. This changes the internal name of the container to a custom value. This is the name you'll see returned in the following Transact-SQL query:

Setting -h and --name to the same value is a good way to easily identify the target container.

Change the SA password

The SA account is a system administrator on the SQL Server instance that gets created during setup. After creating your SQL Server container, the SA_PASSWORD environment variable you specified is discoverable by running echo $SA_PASSWORD in the container. For security purposes, change your SA password.

  1. Choose a strong password to use for the SA user.

  2. Use docker exec to run sqlcmd to change the password using Transact-SQL. In the following example, replace the old password, <YourStrong!Passw0rd>, and the new password, <YourNewStrong!Passw0rd>, with your own password values.

Connect to SQL Server

The following steps use the SQL Server command-line tool, sqlcmd, inside the container to connect to SQL Server.

  1. Use the docker exec -it command to start an interactive bash shell inside your running container. In the following example sql1 is name specified by the --name parameter when you created the container.

  2. Once inside the container, connect locally with sqlcmd. Sqlcmd is not in the path by default, so you have to specify the full path.

    Tip

    Mar 19, 2020  Lifecam Studio on Mac My mac detects the Studio with no problem and it works in photobooth and skype but I'm wondering if someone knows of a program to download to play with the picture options as I'm not satisfied with the color out of box and the windows driver is not available to mac. Microsoft lifecam mac os. Microsoft LifeCam Studio webcam on Mac OS X. I was struggling with my Microsoft Lifecam Studio webcam because it was not working properly. I have a Retina MacBook Pro 15″ (late 2013) and I test the camera with the PhotoBooth app on Mavericks. All I was able to. Connecting a Microsoft LifeCam to your Mac computer sounds like it should be a simple process: plug it into a USB port and go. However, because the LifeCam wasn't designed with Mac users in mind, the two devices aren't compatible out-of-the-box.

    You can omit the password on the command-line to be prompted to enter it.

  3. If successful, you should get to a sqlcmd command prompt: 1>.

Create and query data

The following sections walk you through using sqlcmd and Transact-SQL to create a new database, add data, and run a simple query.

Create a new database

The following steps create a new database named TestDB.

  1. From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:

  2. On the next line, write a query to return the name of all of the databases on your server:

  3. The previous two commands were not executed immediately. You must type GO on a new line to execute the previous commands:

Insert data

Next create a new table, Inventory, and insert two new rows.

  1. From the sqlcmd command prompt, switch context to the new TestDB database:

  2. Create new table named Inventory:

  3. Insert data into the new table:

  4. Type GO to execute the previous commands:

Select data

Now, run a query to return data from the Inventory table.

  1. From the sqlcmd command prompt, enter a query that returns rows from the Inventory table where the quantity is greater than 152:

  2. Execute the command:

Exit the sqlcmd command prompt

  1. To end your sqlcmd session, type QUIT:

  2. To exit the interactive command-prompt in your container, type exit. Your container continues to run after you exit the interactive bash shell.

Connect from outside the container

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.

The following steps use sqlcmd outside of your container to connect to SQL Server running in the container. These steps assume that you already have the SQL Server command-line tools installed outside of your container. The same principles apply when using other tools, but the process of connecting is unique to each tool.

  1. Find the IP address for the machine that hosts your container. On Linux, use ifconfig or ip addr. On Windows, use ipconfig.

  2. For this example, install the sqlcmd tool on your client machine. For more information, see Install sqlcmd on Windows or Install sqlcmd on Linux.

  3. Run sqlcmd specifying the IP address and the port mapped to port 1433 in your container. In this example, that is the same port, 1433, on the host machine. If you specified a different mapped port on the host machine, you would use it here.

  4. Run Transact-SQL commands. When finished, type QUIT.

Other common tools to connect to SQL Server include:

Remove your container

If you want to remove the SQL Server container used in this tutorial, run the following commands:

Run Microsoft Sql Server On Mac Using Docker Download

Warning

Stopping and removing a container permanently deletes any SQL Server data in the container. 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 demo

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. The following video shows how Docker can be used in a continuous integration and deployment scenario.

Next steps

Run Microsoft Sql Server On Mac Using Docker Free

For a tutorial on how to restore database backup files into a container, see Restore a SQL Server database in a Linux Docker container. To explore other scenarios, such as running multiple containers, data persistence, and troubleshooting, see Configure SQL Server container images on Docker.

Run Microsoft Sql Server On Mac Using Docker File

Also, check out the mssql-docker GitHub repository for resources, feedback, and known issues.