Azure容器实例运行参数

问题描述

我想运行一个容器实例(OrientDB数据库)。我创建了一个Azure文件共享并将其附加到实例(由于Web GUI不支持Azure命令行界面,因此必须使用Azure CLI命令行界面)。问题是我需要输入运行参数以将内部文件夹映射到外部文件夹。我正在搜索几天,根本找不到如何输入参数。我确定我不是唯一一个这样做的人,但是我发现的一切都不令人满意。帮助任何人吗?

到目前为止,我正在使用此命令。

az container create -g ProjectX --name orientdb --image orientdb:3.0.32 `
    --cpu 1 `
    --memory 1.5 `
    --environment-variables ORIENTDB_ROOT_PASSWORD=*** `
    --os-type Linux `
    --ports 80 2424 2480 `
    --protocol TCP `
    --ip-address public `
    --dns-name-label *** `
    --azure-file-volume-share-name *** `
    --azure-file-volume-account-name *** `
    --azure-file-volume-account-key *** `
    --azure-file-volume-mount-path /mnt/azurevolume `
    --restart-policy OnFailure

我不知道“ azure-file-volume-xxx”参数是否足够。我认为没有,因为我认为这些仅将外部卷附加到容器,但不执行任何映射。

在本地运行orientdb容器的命令是:

docker run -d --name orientdb -p 2424:2424 -p 2480:2480 \
    -v <config_path>:/orientdb/config \
    -v <databases_path>:/orientdb/databases \
    -v <backup_path>:/orientdb/backup \
    -e ORIENTDB_ROOT_PASSWORD=rootpwd \
    orientdb

谢谢 托玛斯

解决方法

我认为您需要使用以下参数:

--azure-file-volume-account-name
--azure-file-volume-account-key
--azure-file-volume-share-name
--azure-file-volume-mount-path

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-volume-azure-files

az container create \
    --resource-group $ACI_PERS_RESOURCE_GROUP \
    --name hellofiles \
    --image mcr.microsoft.com/azuredocs/aci-hellofiles \
    --dns-name-label aci-demo \
    --ports 80 \
    --azure-file-volume-account-name $ACI_PERS_STORAGE_ACCOUNT_NAME \
    --azure-file-volume-account-key $STORAGE_KEY \
    --azure-file-volume-share-name $ACI_PERS_SHARE_NAME \
    --azure-file-volume-mount-path /aci/logs/

上级答案(我正在猜测OP使用的docker映像和命令行参数)

简而言之:

“秘密”又称敏感值。您可以使用环境变量“注入”配置值。

请注意“-环境变量”

az container create \
    --resource-group myResourceGroup \
    --name mycontainer2 \
    --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
    --restart-policy OnFailure \
    --environment-variables 'NumWords'='5' 'MinLength'='8'

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-environment-variables

从哲学上讲,请勿将这些值烘烤到容器中。您的容器“伸出”以获取它们...容器“伸出”的最简单方法是读取环境变量。

..

对于机密,请使用Azure KeyVault。这不在您的问题范围内,但我在此提及,因此可以避免使用ENV变量作为机密的不良安全实践。

秘密是“数据库密码”,Oauth2的“ client_secret”等,等等。

面包屑:

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-managed-identity

https://thorsten-hans.com/integrating-azure-keyvault-with-azure-container-services

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...