
jamesgoulddev/azure-keyvault-emulator该Docker镜像是一个轻量级、全功能的Azure Key Vault模拟器,专为开发和测试场景设计。它允许开发人员在本地环境中模拟Azure Key Vault的核心功能,无需依赖真实的Azure云资源或账户。通过支持Azure官方SDK客户端库,可直接复用现有代码连接模拟器,大幅降低开发环境配置复杂度,提高Azure Key Vault相关应用的开发测试效率。
bashdocker run -d -p 8200:8200 --name keyvault-emulator [镜像名称]
-d:后台运行容器-p 8200:8200:端口映射(主机端口:容器端口),默认使用8200端口--name keyvault-emulator:指定容器名称,便于后续管理如需使用非默认端口(如8300):
bashdocker run -d -p 8300:8300 --name keyvault-emulator [镜像名称] --port 8300
通过挂载主机目录实现数据持久化:
bashdocker run -d -p 8200:8200 -v /host/data/path:/emulator/data --name keyvault-emulator [镜像名称] --storage /emulator/data
-v /host/data/path:/emulator/data:将主机目录/host/data/path挂载到容器内/emulator/data--storage /emulator/data:指定模拟器数据存储路径为容器内挂载目录创建docker-compose.yml文件:
yamlversion: '3.8' services: keyvault-emulator: image: [镜像名称] container_name: keyvault-emulator ports: - "8200:8200" # 端口映射 volumes: - ./kv-data:/emulator/data # 持久化数据到当前目录下kv-data文件夹 command: --storage /emulator/data --port 8200 # 启动参数 environment: - LOG_LEVEL=INFO # 日志级别:DEBUG/INFO/WARN/ERROR restart: unless-stopped # 容器退出时自动重启(除非手动停止)
启动服务:
bashdocker-compose up -d
csharpusing Azure.Identity; using Azure.Security.KeyVault.Secrets; // 创建模拟器客户端(使用DefaultAzureCredential,禁用共享令牌缓存) var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions { ExcludeSharedTokenCacheCredential = true }); var client = new SecretClient(new Uri("http://localhost:8200"), credential); // 示例:添加并读取机密 await client.SetSecretAsync("test-secret", "secret-value"); var secret = await client.GetSecretAsync("test-secret"); Console.WriteLine($"机密值:{secret.Value.Value}");
pythonfrom azure.identity import DefaultAzureCredential from azure.keyvault.secrets import SecretClient # 创建模拟器客户端 credential = DefaultAzureCredential(exclude_shared_token_cache_credential=True) client = SecretClient(vault_url="http://localhost:8200", credential=credential) # 示例:添加并读取机密 client.set_secret("test-secret", "secret-value") secret = client.get_secret("test-secret") print(f"机密值:{secret.value}")
| 参数/环境变量 | 说明 | 默认值 | 配置方式 |
|---|---|---|---|
--port | 模拟器服务端口 | 8200 | 启动命令参数 |
--storage | 数据存储路径(容器内) | /tmp/keyvault | 启动命令参数 |
LOG_LEVEL | 日志输出级别 | INFO | 环境变量(-e LOG_LEVEL=DEBUG) |
MAX_CONCURRENT_REQUESTS | 最大并发请求数 | 100 | 环境变量(-e MAX_CONCURRENT_REQUESTS=200) |
注意:所有启动命令参数需放在镜像名称之后,如
docker run [镜像名称] --port 8300 --storage /data

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务