【问题标题】:LocalDb V11.0 on DockerDocker 上的 LocalDb V11.0
【发布时间】:2019-06-05 19:28:01
【问题描述】:

我的项目使用 Visual Studio 2017,但遗憾的是不支持 LocalDb V11。所以我想有一个 Docker 容器,但找不到任何现有的图像。 我想将以下连接字符串连接到我的数据库:

"Data Source=(LocalDB)\\v11.0;Initial Catalog={0};Integrated Security=True; Trusted_connection=true;Connection Timeout=60"

所以我的问题是有任何带有 LocalDb v11.0 的 Docker Sql-server 映像吗? 或者Linux或者Windows都可以使用官方microsoft/mssql-server-linux吗?

【问题讨论】:

  • LocalDB 设计为在本地环境中运行(顾名思义),而不是在容器中。在容器中运行 LocalDB 完全违背了目的,因为您只能从容器内访问 Local DB。
  • Hmm.. 但是下面的连接字符串有什么区别:“Server=localhost,1433;Initial Catalog={0};User ID=sa;Password=ComplexPW!123”?因为我可以连接到它
  • @st.limp,该连接字符串将连接到在您的本地主机上运行的实例或容器。
  • 那么使用LocalDb的唯一选择就是在本地安装SQL Server Express?
  • @st.limp,不,你有很多选择。这是用于开发还是生产?我可以详细回答。

标签: sql-server docker localdb


【解决方案1】:

我不知道 LocalDB 的官方 Docker 映像。您需要从 dockerfile 构建自定义 (Windows) 映像,通过命令行使用 RUN 说明安装 LocalDB。但是由于 LocalDB 不允许远程连接,这意味着您还需要在镜像中包含您的应用程序和依赖项。

Docker CE for Windows 可以运行 Linux 和 Windows 容器。但是,两者不能(当前)同时运行,因此如果同时使用这两种图像类型,则需要在两种图像类型之间切换。 SQL Server Linux 映像重量更轻,允许不同的版本,并且在生产中受支持。如果您依赖于仅适用于 Windows 上的 SQL Server 或更喜欢 Windows 操作系统的功能,则需要 Windows 映像。

对于非产品用途,请考虑使用免费的开发者版(Linux 或 Windows)。开发人员版具有与企业版相同的所有功能,但只能用于开发和测试。除非您需要在生产环境中运行并希望节省成本,否则较小的版本不会带来任何好处。

以下是 Docker Hub 页面的链接。

SQL Server Windows images

SQL Server Linux images

使用-p 1433:1433 运行这些图像中的任何一个,您都可以使用评论中的连接字符串:

"Server=localhost,1433;Initial Catalog={0};User ID=sa;Password=ComplexPW!123"?

【讨论】:

  • 感谢您的全面解答!
  • @st.limp,我不会说全面,但至少足以为您指明正确的方向。很高兴为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多