Docker安装MS SQL Server并使用Navicat远程连接
<h2>MS SQL Server简介</h2><p>Microsoft SQL Server(简称SQL Server)是由微软公司开发的关系数据库管理系统,它是一个功能强大、性能卓越的企业级数据库平台,用于存储和处理大型数据集、支持高效查询和分析等操作。SQL Server 支持广泛的应用程序开发接口(API),包括 T-SQL、ADO.NET、ODBC、OLE DB 等,并支持多种操作系统,包括 Windows、Linux 和 Docker 等。SQL Server 包含许多高级功能和组件,如数据仓库、分析服务、报告服务、全文搜索等,可为企业提供全面的数据管理和分析解决方案。</p>
<h2><span class="ne-text">基于Ubuntu的Microsoft SQL Server官方镜像<br></span></h2>
<blockquote>
<p>mssql-server Docker hub:<span class="ne-text">https://hub.docker.com/_/microsoft-mssql-server</span></p>
</blockquote>
<p><img src="https://img2023.cnblogs.com/blog/1336199/202306/1336199-20230604143653891-418492007.png" alt="" loading="lazy"></p>
<h2><span class="ne-text">拉取Microsoft SQL Server 2022容器</span><span class="ne-text">镜像</span></h2>
<div class="cnblogs_code">
<pre>sudo docker pull mcr.microsoft.com/mssql/server:2022-latest</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1336199/202306/1336199-20230604144118956-1075032744.png" alt="" loading="lazy"></p>
<h2>验证mssql镜像是否成功拉取到本地</h2>
<p>使用以下命令来查看mssql镜像是否成功拉取到本地:</p>
<div class="cnblogs_code">
<pre>docker images</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1336199/202306/1336199-20230604144258259-1171472017.png" alt="" loading="lazy"></p>
<h2><span class="ne-text">创建并运行一个mssql<span class="ne-text">容器</span></span></h2>
<p><span class="ne-text"><span class="ne-text">使用以下命令启动容器(Docker 镜像启动后,将会自动启动 SQL Server),其中 Y.sa123456 为 SQL Server sa 用户的密码:</span></span></p>
<blockquote>
<p>这个命令的含义是在 Docker 中以后台模式 (-d) 运行 Microsoft SQL Server 2022 的最新版本 (mcr.microsoft.com/mssql/server:2022-latest) 镜像,并将容器命名为 mssql2022 (--name mssql2022)。同时,通过 -p 1433:1433 参数将容器的 1433 端口映射到主机的 1433 端口上,使得可以通过主机的 1433 端口访问 SQL Server。在容器启动过程中,需要设置两个环境变量:</p>
<p>ACCEPT_EULA=Y 表示接受使用条款。<br>MSSQL_SA_PASSWORD=Y.sa123456 表示设置 SA 用户的密码为 "Y.sa123456"[一定要注意密码一点要严格设置不然有坑]。</p>
</blockquote>
<div class="cnblogs_code">
<pre>docker run -e <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ACCEPT_EULA=Y</span><span style="color: rgba(128, 0, 0, 1)">"</span> -e <span style="color: rgba(128, 0, 0, 1)">"SA_PASSWORD</span><span style="color: rgba(128, 0, 0, 1)">=Y.sa123456</span><span style="color: rgba(128, 0, 0, 1)">"</span> -p <span style="color: rgba(128, 0, 128, 1)">1433</span>:<span style="color: rgba(128, 0, 128, 1)">1433</span> --name mssql2022 -d mcr.microsoft.com/mssql/server:<span style="color: rgba(128, 0, 128, 1)">2022</span>-latest</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1336199/202306/1336199-20230604144915060-938411972.png" alt="" loading="lazy"></p>
<h2>注意大坑使用Docker部署Sql Server容器后过几秒就停止了</h2>
<blockquote>
<p>SA_PASSWORD=Y.sa123456 为密码,要求是最少8位的强密码,要有大写字母,小写字母,数字以及特殊符号,不然会有一个大坑(Docker启动Sql Server容器后过几秒就停止了)。</p>
</blockquote>
<h2>验证容器是否创建成功</h2>
<div class="cnblogs_code">
<pre>docker ps</pre>
</div>
<p><img src="https://img2023.cnblogs.com/blog/1336199/202306/1336199-20230604151830587-267338672.png" alt="" loading="lazy"></p>
<blockquote>
<p>如果使用docker ps查看不到在使用docker ps -a查看,如果docker ps -a可以查看到那就说明容器没有启动需要使用docker start name来启动容器!</p>
</blockquote>
<h2>设置 Docker 主机防火墙规则</h2>
<p>默认情况下,Docker 带有一个内置的防火墙,需要开放 1433 端口才能让外部访问 SQL Server。使用以下命令开放 Docker 主机的 1433 端口:</p>
<div class="cnblogs_code">
<pre>sudo ufw allow <span style="color: rgba(128, 0, 128, 1)">1433</span>/tcp</pre>
</div>
<p>重启防火墙,注意重启防火墙之后才会生效。</p>
<div class="cnblogs_code">
<pre>sudo ufw reload</pre>
</div>
<h2>服务器防火墙配置1433的开放端口</h2>
<p><img src="https://img2023.cnblogs.com/blog/1336199/202306/1336199-20230604150339029-347026672.png" alt="" loading="lazy"></p>
<h2>Navicat远程连接</h2>
<p><img src="https://img2023.cnblogs.com/blog/1336199/202306/1336199-20230604150016094-206105342.png" alt="" loading="lazy"></p>
<p><img src="https://img2023.cnblogs.com/blog/1336199/202306/1336199-20230604153804408-785182276.png" alt="" loading="lazy"></p>
<h2>参考文章</h2>
<p id="quickstart-run-sql-server-linux-container-images-with-docker">使用 Docker 运行 SQL Server Linux 容器映像</p>
</div>
<div id="MySignature" role="contentinfo">
<blockquote >
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者名称:</span>追逐时光者</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'><span style='font-size: 17px; '>作者简介:</span>一个热爱编程、善于分享、喜欢学习、探索、尝试新事物和新技术的全栈软件工程师。</p>
<p style='font-family:YouYuan;font-size: 16px;margin: 0 auto 0.01em auto;'>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如果该篇文章对您有帮助的话,可以点一下右下角的【♥推荐♥】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确的地方,欢迎指正或补充,不胜感激。
</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/Can-daydayup/p/17455612.html
頁:
[1]