有人知道为什么我不能使用Airflow运行docker吗?
使用运行气流的用户,相同的docker命令可以从终端正常运行。 因此,Linux方面没有问题。
但是将其放入Airflow dag时会抱怨
docker:尝试连接到Docker时获得的权限被拒绝 unix:///var/run/docker.sock上的守护程序套接字:发布 http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create:拨打Unix /var/run/docker.sock:连接:权限被拒绝。
该命令就是docker run --rm -v /data:/data:ro docker_image mycommand
。它包装在python子进程中,所以我不能使用docker运算符。
请注意,此问题与以下问题不同:How to fix "dial unix /var/run/docker.sock: connect: permission denied" when group permissions seem correct?
这是一个Linux权限问题,因为它无法运行docker run
命令。我认为,这里的问题更多是与气流有关。
答案 0 :(得分:2)
遇到类似问题。 通过将airflow.cfg中的default_owner(default = airflow)更改为有权访问docker(即属于docker组的用户名)的用户来解决此问题。
在DAG定义的“ default_args”中有趣地传递所有者似乎无效