我试图从一个docker-compose.yml创建一个Server容器,但是当我运行它时,它会直接停止,但会出现一些错误。注意:它是在苹果的M1芯片上运行的,带有码头预览
docker-compose.yml:
version: "3.7"
services:
sql-server-db:
container_name: sql-server-db
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- "1433:1433"
environment:
SA_PASSWORD: "ApplePassDockerConnect"
ACCEPT_EULA: "Y"我所犯的错误:
sql-server-db \opt/mssql/bin/sqlservr:地址0x40092b8000在0x4000000000以下的保留地址空间中的无效映射。可能的原因: server\ 1)进程(本身,或通过包装器)启动自己的运行环境,通过syscall setr极限将堆栈大小限制设置为无限(2); server\ 2)进程(本身,或通过包装器)调整自己的执行域,并通过syscall个性(2)标记系统遗留的个性(2); 通过调整sysctl旋钮vm.legacy_va_layout,系统管理员故意将系统设置为在遗留VA布局模式下运行。 sql-server-db \x sql-server-db与代码1一起退出
发布于 2021-04-02 13:14:11
您不能在mcr.microsoft.com/mssql/server:2019-latest上真正使用M1容器,因为MSSQL不支持ARM体系结构。我发现的唯一方法是使用Azure容器,它支持ARM,可以在M1上运行。
这里是我的docker-compose.yml配置示例:
version: "3.9"
services:
# Database instance
mssql:
image: mcr.microsoft.com/azure-sql-edge:latest
volumes:
- events_mssql:/var/opt/mssql
ports:
- 1433:1433
environment:
- ACCEPT_EULA=1
- MSSQL_SA_PASSWORD=Passw@rd
volumes:
events_mssql:您将能够使用用户名:sa、密码:Passw@rd和数据库:master连接到这个DB。如果需要其他db名称,可以创建一个新的使用SQL:CREATE DATABASE TestDB
该数据库具有与MSSQL相同的API,因此它可以使用pyodbc (M1不支持)和pymssql库。
如果您在您的M1机器上本地使用它--考虑使用pymssql库连接到Azure。这是我对pyodbc https://stackoverflow.com/a/66919686/11515610的问题的回答
发布于 2021-08-08 13:10:48
M1还没有包含,但我们可以使用M1
我也尝试过用于苹果M1芯片的MSSQL映像,但也有相同的错误。
使用azure-sql-edge,我可以在苹果BigSur操作系统上使用M1芯片。
您可以阅读本文https://medium.com/geekculture/docker-express-running-a-local-sql-server-on-your-m1-mac-8bbc22c49dc9
如果它对你有帮助的话,别忘了标记它。
发布于 2020-12-21 21:58:34
So...this可能与您的特定问题无关。我有一种感觉,它不会为你解决它,因为你的问题听起来低得多(如你所怀疑的),但值得一试。
我试着复制-粘贴你的确切的对接-撰写文件,并运行在我的机器(windows桌面),我也得到exited with code 1。
唯一能解决这个问题的方法就是使用一个更复杂的密码。
我连续测试了好几次.我测试了你的密码,结果失败了。我测试了一个复杂的密码,效果很好。
所以我建议使用更复杂的密码。我测试的密码是6Xy3LkV7!9lo2^h
https://stackoverflow.com/questions/65398641
复制相似问题