我如何 运行 Docker 上的 Cosmos DB 模拟器用于 Windows?
How do I run Cosmos DB Emulator on Docker for Windows?
我正尝试在 Docker 上为 Windows 安装 Cosmos DB 模拟器 运行ning,但我运气不好。我在这里遵循命令:
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 收到各种错误,包括 "invalid bind mount"。该命令本身似乎不正确,所以我尝试将 mominag/documentdb_emulator
更改为 microsoft/azure-documentdb-emulator
但没有奏效。 这是我第一次真正尝试使用 Docker。
我还查看了 GitHub 上的以下内容,它看起来像是 Microsoft 文档中命令的来源。
https://github.com/Azure/azure-documentdb-emulator-docker
更新:
这是我 运行ning 的命令和返回的错误。
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
目录已创建,但我仍然在 docker 运行 命令中遇到相同的错误。
根据你的描述,我通过power查看了命令行shell,发现目录创建不正确,如下:
注意: 您可以将 %LOCALAPPDATA%
替换为 $env:LOCALAPPDATA
。
当运行以下命令行启动documentdb模拟器:
docker run -v %LOCALAPPDATA%\DocumentDBEmulatorCert:c:\DocumentDBEmulator\DocumentDBEmulatorCert -P -t -i mominag/documentdb_emulator
我遇到了以下错误:
当我将 mominag/documentdb_emulator
更改为 microsoft/azure-documentdb-emulator
时,我可以如下成功启动我的 documentdb 模拟器:
我正尝试在 Docker 上为 Windows 安装 Cosmos DB 模拟器 运行ning,但我运气不好。我在这里遵循命令:
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 收到各种错误,包括 "invalid bind mount"。该命令本身似乎不正确,所以我尝试将 mominag/documentdb_emulator
更改为 microsoft/azure-documentdb-emulator
但没有奏效。 这是我第一次真正尝试使用 Docker。
我还查看了 GitHub 上的以下内容,它看起来像是 Microsoft 文档中命令的来源。
https://github.com/Azure/azure-documentdb-emulator-docker
更新: 这是我 运行ning 的命令和返回的错误。
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
目录已创建,但我仍然在 docker 运行 命令中遇到相同的错误。
根据你的描述,我通过power查看了命令行shell,发现目录创建不正确,如下:
注意: 您可以将 %LOCALAPPDATA%
替换为 $env:LOCALAPPDATA
。
当运行以下命令行启动documentdb模拟器:
docker run -v %LOCALAPPDATA%\DocumentDBEmulatorCert:c:\DocumentDBEmulator\DocumentDBEmulatorCert -P -t -i mominag/documentdb_emulator
我遇到了以下错误:
当我将 mominag/documentdb_emulator
更改为 microsoft/azure-documentdb-emulator
时,我可以如下成功启动我的 documentdb 模拟器: