Docker上的Azure CosmosDB模拟器不会生成证书

时间:2018-10-18 16:17:40

标签: azure docker azure-cosmosdb

我正在按照以下说明在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

但是我在任何地方都看不到证书

3 个答案:

答案 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步:

您不应再因本地主机上的可访问性而收到证书错误