运行码头集装箱的泊坞窗内的气流
我在EC2实例上运行气流,并且正在安排启动码头集装箱的一些任务。我怎么做?我需要在我的气流容器上安装码头吗?下一步是什么?我有一个yaml文件,用于旋转容器,它来自于puckel/airflow泊坞窗图片运行码头集装箱的泊坞窗内的气流
您可以通过将卷附加到容器中,从气流泊坞窗容器中旋转泊坞窗容器。
例子:
docker run -v /var/run/docker.sock:/var/run/docker.sock:ro -v /path/to/bin/docker:/bin/docker:ro your_airflow_image
您可能还需要附上由码头工人所需的一些库。这取决于您运行Docker的系统。只需阅读在容器中运行docker命令时获得的错误消息,它就会指示您需要附加的东西。
您的气流容器将拥有对主机上运行的Docker的完全访问权限。 因此,如果您启动码头集装箱,它们将运行在运行气流容器的主机上。
感谢您的回复。我有一个添加更多的东西 - 当我有一个完整的解决方案时,我会追加答案。我在运行Ubuntu Xenial的EC2实例上运行它。我的码头容器是建立在debian之上的。概率。出于这个原因,我不得不在我的Dockerfile中添加docker二进制文件并启动守护进程。我现在正在获得权限被拒绝的错误,所以下一步就是将气流作为用户添加到嵌套的docker实例,以便它可以触发docker run。 –
@AshishMarkanday您不能将docker二进制文件从主机附加到容器,而不是将其添加到Dockerfile中? –
绝对将其添加到主机或其他容器业务流程(如ECS或Kubernetes)。不要在docker中运行docker – Davos
终于解决
我的EC2设置运行unbuntu Xenial 16.04和使用运行气流
事情修改puckel /气流泊坞窗映像,您需要在Dockerfile改变
添加在Dockerfile
USER root
安装基座的顶部USER根尔滨是不是为我工作,所以我不得不安装
docker binary in my docker container
从泊坞公司仓库安装泊坞窗。
RUN curl -sSL https://get.docker.com/ | sh
搜索在互联网上wrapdocker文件。将其复制到Dockerfile所在文件夹中的脚本目录中。这将启动气流泊坞窗
内泊坞窗守护程序安装魔力包装
ADD ./script/wrapdocker /usr/local/bin/wrapdocker
RUN chmod +x /usr/local/bin/wrapdocker
为用户添加气流泊坞窗组,以便气流可以运行码头工人的工作
RUN usermod -aG docker airflow
切换到气流用户
USER airflow
码头工人组成的文件或命令行参数来运行泊坞窗
从泊坞窗气流泊坞窗图像山泊坞窗插座刚刚安装
- /var/run/docker.sock:/var/run/docker.sock
你应该是好去!
我认为在码头集装箱内部安装码头是一点点启始。我认为如果可能的话,最好使用ECS或Lambda或无服务器。 – Davos