您可能已经看过该杂志上一篇关于 在上运行 SQL Server v.Next Fedora. 那篇文章讨论了如何将它直接安装到您的 Fedora 安装。 然而,容器是一种 非常流行的部署应用程序的方式,特别是如果您只是想尝试一下。 继续阅读以了解如何运行 SQL Docker 容器中的服务器公共预览版 Fedora.
码头工人
首先,您需要安装 docker。 简而言之,运行以下命令:
sudo dnf install docker sudo systemctl start docker
默认情况下,您需要以 root 身份运行 docker 或使用 sudo,但如果需要,您可以更改它。 查看 Fedora 开发者页面在 码头工人 有关更多详细信息和更详细的设置。 您可能还对使用 docker 可以做的其他事情感兴趣,并且 Fedora 根据我过去的一篇文章。
设置 SQL Server
要使用 SQL Server 拉取 Docker 映像,请运行以下命令:
docker pull langdon/fedora-mssqlserver
您将看到它下载了所有图层。 如果你拉了一个,这个过程会更快 Fedora 泊坞窗图像过去。 要运行它,请使用以下命令(复制和粘贴使这更容易):
docker run -d -t -p 1433:1433 -v $DATADIR:/var/opt/mssql/data:rw,z -v $LOGDIR:/var/opt/mssql/log:rw,z -e ACCEPT_EULA=$ACCEPT_EULA -e SA_PASSWORD=$SA_PASSWORD langdon/fedora-mssqlserver
稍微解释一下这个长命令:
- -p 1433:1433 — 这是从容器公开的用于连接 SQL Server 的端口。 此命令将您机器上的 1433 绑定到容器端口。 如果您将 1433 用于其他用途,您也可以使用 -P 来使用任意端口。
- $DATADIR — 将其替换为本地目录,或设置 SQL Server 应存储其数据的环境变量。
- $LOGDIR — 与 $DATADIR 类似,但日志除外。
- $ACCEPT_EULA — 您需要接受 Microsoft 许可协议才能使用此软件。
- $SA_PASSWORD — 默认值 admin SQL Server 中的用户是 SA,这是您设置其密码的地方。 替换它可能比设置环境变量更好。
从技术上讲,您不需要先拉图像。 我相信它使解释更简单。 我也有一个 方便的脚本 您可以运行以使这更容易,但您仍然必须提供密码。
检查以确保您的容器正在运行:
docker ps
应该有一个类似这样的条目:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 381a922c2a3e langdon/fedora-mssqlserver "/start.sh" 3 seconds ago Up 2 seconds 0.0.0.0:1433->1433/tcp angry_jepsen
连接到 SQL Server
最后,您可以连接到容器。 吨o 获取工具,运行以下命令:
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo dnf install -y --allowerasing mssql-tools
请注意,根据您的软件包集,可能需要 –allowerasing。 mssql-tools 软件包需要与随附版本不同的 unixODBC 版本 Fedora.
现在您有了一个 sqlcmd 实用程序,您可以使用如下方式进行连接:
sqlcmd -U sa -P $SA_PASSWORD
$SA_PASSWORD 使用您在启动容器运行时提供的密码。 最后,要证明 SQL Server 已启动并正常工作,请使用以下命令:
<span class="hljs-keyword">1> SELECT</span> <span class="hljs-keyword">Name</span> <span class="hljs-keyword">from</span> sys.Databases;
2> GO
您将看到默认表。 您可以在此阅读更多内容 入门 来自微软。
更多信息
如果您正在寻找有关 Linux 上的 SQL Server 的更多信息,请参阅 官方网站. 如果你对使用 Docker 的其他方式感兴趣,这里有几个有趣的 docker 帖子 Fedora 杂志。 我也有这一切 Github 仓库,包括在受控环境中尝试此过程的 Vagrantfile。 如果您发现任何问题,请检查并提交拉取请求。