[macOS] 在 macOS 上使用 Docker 运行 Microsoft SQL Server

Microsoft SQL Server 之前是不能直接安装和运行在 macOS 上的,但是从 SQL Server 2017 开始,支持了 Linux,因此可以通过 Docker 使其在 macOS 上运行。

本文介绍使用 Docker 在 macOS 上运行 Microsoft SQL Server。

安装

安装 Docker

在 macOS 上如何安装Docker请看官方文档 Install Docker Desktop on Mac - https://docs.docker.com/docker-for-mac/install/

也可以通过 brew 包管理器来安装 Docker。

1
brew install --cask docker

关于 brew 的更多信息,请查阅 The Missing Package Manager for macOS (or Linux) — Homebrew - https://brew.sh/

拉取 SQL Server 镜像

执行如下命令拉取 SQL Server 镜像:

1
2
3
4
$ docker pull mcr.microsoft.com/mssql/server:2017-latest

# 或拉取最新 2022-latest 版本
# $ docker pull mcr.microsoft.com/mssql/server:2022-latest

关于更多版本,请参考 Microsoft SQL Server - Ubuntu based images | Microsoft Artifact Registry - https://mcr.microsoft.com/en-us/product/mssql/server/about

使用 SQL Server 镜像创建并运行容器

执行如下命令使用 mcr.microsoft.com/mssql/server:2017-latest 镜像,创建一个名称为 sqlserver 的容器,该容器的端口为1433。

1
2
3
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Passw0rd" \
-p 1433:1433 --rm --name sqlserver \
-d mcr.microsoft.com/mssql/server:2017-latest

其中:

  • -e "ACCEPT_EULA=Y" 将 ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。

  • -e "SA_PASSWORD=Passw0rd" 指定至少包含 8 个字符且符合 SQL Server 密码要求的强密码。

  • -p 1433:1433 将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)。

  • --rm 退出容器以后,这个容器就被删除了,方便在临时测试使用。

  • --name sqlserver 为容器指定一个自定义名称,而不是使用随机生成的名称。

关于 SQL Server 镜像的更多信息,请查阅 Microsoft SQL Server - Ubuntu based images | Microsoft Artifact Registry - https://mcr.microsoft.com/en-us/product/mssql/server/about

查看容器运行状况

1
ps -e | grep sqlserver

可以通过执行 docker logs 命令检查 SQL Server 运行日志。

1
docker logs sqlserver

使用

在容器内连接 SQL Server

  • 使用 docker exec -it 命令在运行的容器内部启动交互式 `Bash Shell:

    1
    docker exec -it sqlserver bash

    sqlserver 是在创建容器时由 -–name 参数指定的名称。

  • 在容器内部使用 sqlcmd 进行本地连接。 默认情况下,sqlcmd 不在路径之中,因此需要指定完整路径。

    1
    2
    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Passw0rd"
    1>
  • 如果成功,应会显示 sqlcmd 命令提示符 1>

利用 DBeaver 等可视化工具连接 SQL Server

在 macOS 上如何安装 DBeaver 请看官方文档 Download | DBeaver Community - https://dbeaver.io/download/

也可以通过 brew 包管理器来安装 DBeaver。

1
brew install --cask dbeaver-community

参考链接

[1] Install on Mac | Docker Documentation - https://docs.docker.com/desktop/install/mac-install/

[2] Microsoft SQL Server - Ubuntu based images | Microsoft Artifact Registry - https://mcr.microsoft.com/en-us/product/mssql/server/about

[3] SQL Server 2017 on Windows and Linux | Microsoft - https://www.microsoft.com/en-us/sql-server/sql-server-2017

[4] Microsoft Data Platform | Microsoft - https://www.microsoft.com/en-us/sql-server/

[5] docker — Homebrew Formulae - https://formulae.brew.sh/cask/docker

[6] dbeaver-community — Homebrew Formulae - https://formulae.brew.sh/cask/dbeaver-community

[7] Download | DBeaver Community - https://dbeaver.io/download/

[8] DBeaver Community | Free Universal Database Tool - https://dbeaver.io/

[9] The Missing Package Manager for macOS (or Linux) — Homebrew - https://brew.sh/

[10] 如何在macOS上安装SQL Server ? - 干志雄的博客 - https://ganzhixiong.com/p/9d314fb4/