如何在Docker for Windows上运行Cosmos数据库模拟器?

我试图让在Docker上运行的Cosmos数据库模拟器为Windows,但我没有任何运气。 我在这里遵循命令:

https://docs.microsoft.com/en-us/azure/documentdb/documentdb-nosql-local-emulator

特别:

md %LOCALAPPDATA%\DocumentDBEmulatorCert 2>nul docker run -v %LOCALAPPDATA%\DocumentDBEmulatorCert:c:\DocumentDBEmulator\DocumentDBEmulatorCert -P -t -i mominag/documentdb_emulator 

我收到来自Docker的各种错误,包括“无效绑定挂载”。 该命令本身似乎不正确,所以我已经尝试将mominag/documentdb_emulator更改为microsoft/azure-documentdb-emulator但是没有奏效。 这并没有帮助,这是我第一次尝试使用Docker。

我也看了一下GitHub上看起来像Microsoft文档中命令的来源。

https://github.com/Azure/azure-documentdb-emulator-docker

更新:这是我正在运行的命令和返回的错误。

 PS C:\> md %LOCALAPPDATA%\DocumentDBEmulatorCert 2>nul out-file : FileStream was asked to open a device that was not a file. For support for devices like 'com1:' or 'lpt1:', call CreateFile, then use the FileStream constructors that take an OS handle as an IntPtr. At line:1 char:1 + md %LOCALAPPDATA%\DocumentDBEmulatorCert 2>nul + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Out-File], NotSupportedException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.OutFileCommand PS C:\> docker run -v %LOCALAPPDATA%\DocumentDBEmulatorCert:c:\DocumentDBEmulator\DocumentDBEmulatorCert -P -t -i docume ntdb_emulator C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: invalid bind mount spec "%LOCALAPPD ATA%\\DocumentDBEmulatorCert:c:\\DocumentDBEmulator\\DocumentDBEmulatorCert": invalid volume specification: '%LOCALAPPDA TA%\DocumentDBEmulatorCert:c:\DocumentDBEmulator\DocumentDBEmulatorCert'. See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'. PS C:\> 

如果我删除了2>nul目录被创build,但是我仍然在docker run命令上得到相同的错误。

根据你的描述,我通过power shell检查过命令行,发现目录没有正确创build如下:

在这里输入图像说明

注意:你可以用$env:LOCALAPPDATAreplace%LOCALAPPDATA%

运行以下命令行来启动documentdb模拟器时:

 docker run -v %LOCALAPPDATA%\DocumentDBEmulatorCert:c:\DocumentDBEmulator\DocumentDBEmulatorCert -P -t -i mominag/documentdb_emulator 

我遇到了以下错误:

在这里输入图像说明

当我将mominag/documentdb_emulator更改为microsoft/azure-documentdb-emulator ,我可以成功启动我的documentdb模拟器,如下所示:

在这里输入图像说明