SQL Server Docker保持退出(在MAC osx上部署MS SQL)

n6lpvg4x  于 2023-01-20  发布在  Docker
关注(0)|答案(4)|浏览(140)

我正在尝试在我的MAC上部署一个MS SQL服务器。有几个替代方案。
在这里,我使用的是Docker:我检查了MS-SQL website,并执行了以下代码:

docker run -e 
'ACCEPT_EULA=Y' 
-e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 
-d microsoft/mssql-server-linux

但是,集装箱总是自己停下来,我错过了什么吗?

我正在使用的Docker版本:Version 1.13.0 (15072)

bqucvtff

bqucvtff1#

我也遇到过类似的问题,最后我意识到我在本地开发时使用了一个不符合SQL Server's password policy的假密码,我使用了一个更复杂的密码,这样就解决了这个问题。

8mmmxcuj

8mmmxcuj2#

我最近在Windows上遇到了这个问题。将“引号”改为“修复了这个问题。

ej83mcc0

ej83mcc03#

在Mac上运行时,您需要增加Docker for Mac的RAM。SQL Server需要至少4GB RAM,Docker for Mac默认情况下只为所有容器分配约1-2GB。
要增加Docker for Mac的RAM:

  • 打开Docker for Mac的首选项
  • 点击“资源”
  • 向上移动RAM滑块,在我的情况下,我将其移动到6 GB(SQL Server为4GB,其他所有内容为2GB)

在启动容器时,您还需要为它分配4GB:

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' --memory=4096M -p 1433:1433 -d microsoft/mssql-server-linux

要确认已应用内存限制,请运行:docker stats。SQL Server容器的MEM USAGE / LIMIT列应具有类似于以下内容的输出:536.7MiB / 4GiB
在Mac上需要注意的另一件事是,您无法挂载卷,这将导致问题。

hgb9j2n6

hgb9j2n64#

如果您使用的是MacOS Ventura和/或带有M1/M2(Apple Silicon)芯片的Mac,则需要启用Rosetta Emulation才能正常工作。
转到Docker〉设置〉开发中的功能,启用选项'Use Rosetta for x86/amd64' emulation on Apple Silicon'并重新启动Docker。
此外,请确保密码符合Microsoft设置的密码策略,并创建一个强密码。
删除容器并重新运行docker run命令。示例如下:

docker run -d -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Ithink%Th5r5f0re$Iam' --name sql_server --platform linux/amd64 -p 1433:1433 mcr.microsoft.com/mssql/server:2022-latest

这应该可以让您运行容器而不会出现Exited(1)错误。
此链接解释了详细信息:
https://devblogs.microsoft.com/azure-sql/development-with-sql-in-containers-on-macos/

相关问题