尝试在 M2 MacOS 上运行 Azure Cosmos DB 模拟器时,Docker 容器立即停止运行,没有任何日志

问题描述 投票:0回答:1

尝试在 M2 MacOS 上运行 Azure Cosmos DB 模拟器时,Docker 容器立即停止运行,没有任何日志。我尝试使用以下命令运行它:

% docker run --platform linux/amd64
--发布 8081:8081
--发布 10250-10255:10250-10255
--互动
--蒂
mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:最新

之后,我得到这些日志:

这是评估版本。评估期还剩 [24] 天。 2024-04-04 13:18:22 开始 然后容器随机停止。

我遵循了微软的官方文档https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-develop-emulator?tabs=docker-linux%2Ccsharp&pivots=api-nosql在尝试运行这个时。有谁知道为什么会发生这种情况?或者至少,有没有办法让 cosmos db 模拟在 M2 芯片上运行?

% docker run --platform linux/amd64
--发布 8081:8081
--发布 10250-10255:10250-10255
--互动
--蒂
mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:最新 尝试了这个命令,但没有帮助。

azure docker macos containers azure-resource-manager
1个回答
0
投票

根据提供的上下文,M1 和 M2 芯片目前似乎不支持 Azure Cosmos DB 模拟器。 Microsoft 建议的临时解决方法是安装 Windows 虚拟机并在该平台上运行模拟器。至于 Docker 容器立即停止且没有任何日志的问题,可能是由于缺乏资源,例如核心或内存。

由于体系结构兼容性问题,在 M2 MacOS 上运行 Azure Cosmos DB 模拟器可能会有点棘手。为 AMD64 平台构建的 Docker 容器可能无法在 M2 等基于 ARM 的芯片上顺利运行。

--platform linux/amd64
标志是尝试使用仿真在 ARM 架构上运行 AMD64 容器的一种方法。

您观察到的这种行为可能是由于 M2 芯片的兼容性问题或模拟器本身的配置问题造成的。 Cosmos DB Emulator Docker 映像尚不支持 ARM64,这是 M2 芯片的架构。

但是,请尝试以分离模式运行容器,因为它允许在后台运行,并且可能为容器的运行提供更高的稳定性。由于您在非交互模式下运行模拟器,请尝试删除

--interactive
--tty
标志。

docker run --platform linux/amd64 \
  --publish 8081:8081 \
  --publish 10250-10255:10250-10255 \
  --detach \
  mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest

容器停止后,再使用

docker logs

docker logs <container_id_or_name>

确保 Docker 分配了足够的资源(CPU、内存)。

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.