运行容器后无法访问网络服务器的气流

Dus*_*eak 1 docker airflow

我从docker hub提取了最新版本的气流图像。

apache/airflow

我尝试根据该图像运行容器。

docker run -d -p 127.0.0.1:5000:5000 apache/airflow webserver

容器正在运行,并且端口状态良好。但是我仍然无法从浏览器访问气流Web服务器。 码头工人ps

无法访问该网站。127.0.0.1拒绝连接。

几分钟后,容器将自动停止。

有没有人可以建议?

Mih*_*hai 5

我没有气流的经验,但这是您修复此图像以运行的方法:

首先,您必须覆盖入口点,因为现有入口点并没有太大帮助。据我了解,该图像需要2个步骤才能运行:initdb和webserver。因此,现有的入口点没有用。

跑:

docker run -p 5000:8080 --entrypoint /bin/bash -ti  apache/airflow
Run Code Online (Sandbox Code Playgroud)

这将打开正在运行的容器内的外壳。另请注意,我在容器内映射了端口8080。

然后在容器中运行:

airflow initdb
airflow webserver -p 8080
Run Code Online (Sandbox Code Playgroud)

打开浏览器并导航到http:// localhost:5000

当您关闭容器时,您的工作就没了;)

您可以做的另一件事是将2个airflow命令放在bash脚本中,并将该脚本映射到容器内,然后将其用作入口点。像这样:

docker run -p 5000:8080 -v $(pwd)/startup.sh:/opt/airflow/startup.sh --entrypoint /opt/airflow/startup.sh -d --name airflow apache/airflow 
Run Code Online (Sandbox Code Playgroud)

在运行此程序之前,应使startup.sh可执行。

让我知道您是否遇到问题。