【问题标题】:Azure container instance run parametersAzure 容器实例运行参数
【发布时间】:2020-08-12 18:01:34
【问题描述】:

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

到目前为止,我一直在使用这个命令。

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 containers


    【解决方案1】:

    我认为您需要使用这些参数:

    --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 图像和命令行参数)

    简而言之:

    “秘密”又名敏感值。您使用 ENVIRONMENT 变量来“注入”配置值。

    注意“--environment-variables”

    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

    【讨论】:

    • 卷映射并不是真正的秘密,我也找不到通过环境变量设置它的方法。对于 docker 运行,参数为“-v :/orientdb/databases”。我猜这不是一个真正的环境变量。
    • 您应该将所有这些信息添加到原始问题中。泊坞窗图像,您当前设置魔法值的泊坞窗调用......等等,等等。
    • 我已经更新了我的答案。但请将所有相关信息添加到您的原始问题中。
    猜你喜欢
    • 2022-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    相关资源
    最近更新 更多