在 Linux VM 上执行 运行 Azure Batch 命令时权限被拒绝

Permission Denied when running Azure Batch Command on Linux VM

我正在尝试 运行 在 Azure Batch 上使用自定义 activity 任务。我的自定义 activity 如下所示(为简洁起见进行了编辑):

  "typeProperties": {
       "command": "/bin/bash -c \"run.sh\"\n",
           ...
           "userIdentity": {
               "autoUser": {
                   "scope": "pool",
                   "elevationLevel": "admin"
                }
            }
        }

我的 run.sh 脚本仅包含:

docker run hello-world

当我 运行 时,我在 stderr.txt 中收到以下错误:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.

我认为 运行ning 作为管理员可能会让我访问 运行 docker 所需的套接字,但事实似乎并非如此。如何在没有权限错误的情况下将 运行 docker 命令作为 Azure Batch 命令?

P.S。我想要一个可以通过编辑配置 JSON

理想地从门户网站完成的解决方案

感谢您的帮助!

在 Azure 门户中,当您完成创建任务之前的所有准备工作,例如池、作业等。然后您可以创建任务来执行您想要的操作。

针对你的问题,创建任务时,截图如下:

如果您选择 User identity with Pool autouser, Admin,那么您将获得成功。输出如下:

但是如果你选择其他的,你会得到你发布的错误和如下输出:

我刚刚在 Azure 门户中测试 Batch 任务。希望对您有所帮助。