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

时间:2018-08-29 13:03:49

标签: azure azure-data-factory azure-batch

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

  "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'.

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

P.S。我想要一个理想的解决方案,可以从门户网站通过编辑JSON配置来实现

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在Azure门户中,在创建任务之前完成所有准备工作(例如池,作业等)。然后,您可以创建任务以执行所需的工作。

对于您的问题,在创建任务时,如下截图:

enter image description here

如果您通过池自动用户Admin 选择用户身份,那么您将获得成功。输出将如下所示:

enter image description here

但是,如果您选择其他选项,则会在发布时收到错误消息,并且输出如下:

enter image description here

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