我正在按照以下说明在Docker容器中运行Azure CosmosDB仿真器:
https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator#running-on-docker
描述的主要命令是:
my $c_address = unpack('Q', pack('P', $buffer));
下一条指令是在主机上导入SSL证书:
md %LOCALAPPDATA%\CosmosDBEmulatorCert 2>null
docker run -v %LOCALAPPDATA%\CosmosDBEmulatorCert:C:\CosmosDB.Emulator\CosmosDBEmulatorCert -P -t -i -m 2GB microsoft/azure-cosmosdb-emulator
但是文件夹为空-没有证书,没有powershell脚本。
类似地,容器上的cd /d %LOCALAPPDATA%\CosmosDBEmulatorCert
powershell .\importcert.ps1
文件夹也为空。
一切都在初始化时,有一行写着:
C:\CosmosDB.Emulator\CosmosDBEmulatorCert
但是我在任何地方都看不到证书
答案 0 :(得分:1)
请改用以下说明: constrained
运行命令显示略有不同。它使用--mount
而不是-v
选项来处理卷和绑定:
(将%hostDirectory%
替换为您要存储C:\Users\<youruser>\AppData\Local\azure-cosmosdb-emulator-hostd
之类的证书或在脚本中声明的路径)
docker run --name azure-cosmosdb-emulator --memory 2GB --mount "type=bind,source=%hostDirectory%,destination=C:\CosmosDB.Emulator\bind-mount" -P --interactive --tty microsoft/azure-cosmosdb-emulator
然后您可以关闭交互式外壳。它将继续运行。
答案 1 :(得分:0)
我在C:\CosmosDB.Emulator\bind-mount
的容器中找到了证书
答案 2 :(得分:0)
URL上的指令-https://hub.docker.com/r/microsoft/azure-cosmosdb-emulator/可以正常工作。
尽管如此,我仍然想提出一些更改-
第1步:
md cd $env:LOCALAPPDATA\CosmosDBEmulatorCert
docker run --name azure-cosmosdb-emulator --memory 2GB -p 8081:8081 --mount "type=bind,source=$env:LOCALAPPDATA\CosmosDBEmulatorCert,destination=C:\CosmosDB.Emulator\bind-mount" -P --interactive --tty microsoft/azure-cosmosdb-emulator
第二步:
打开另一个powershell窗口并在以下命令集下运行
Set-ExecutionPolicy-作用域处理-ExecutionPolicy绕过
$ env:LOCALAPPDATA \ CosmosDBEmulatorCert \ importcert.ps1
Set-ExecutionPolicy-范围过程-ExecutionPolicy受限
第3步:
您不应再因本地主机上的可访问性而收到证书错误