ps0*_*604 3 docker docker-compose apache-drill
此链接解释了如何在 Docker 上运行 Apache Drill。
docker run -i --name drill-1.18.0 -p 8047:8047 -t apache/drill:1.18.0 /bin/bash
Run Code Online (Sandbox Code Playgroud)
我需要在 Docker Compose 上运行它,所以我进行了设置:
version: "3.0"
services:
drill:
image: apache/drill:latest
ports:
- "8047:8047"
volumes:
- vol_dask_data:/data
entrypoint:
- /bin/bash
Run Code Online (Sandbox Code Playgroud)
并像这样开始:
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
但是容器结束时没有执行任何操作,即使我启动 docker compose with -d
.
如何在 Docker Compose 中启动 Drill?
Drill Dockerfile结尾为:
ENTRYPOINT /opt/drill/bin/drill-embedded
Run Code Online (Sandbox Code Playgroud)
在docker run
命令中,这种特殊的结构完全忽略了图像名称后面给出的命令。在您的 Compose 设置中,您将其替换entrypoint:
为 Bash shell(用一行),但该 shell 将立即退出。
docker run
该命令和 Compose 设置之间的另一个重要区别是-it
选项。如果您docker run
在没有任何命令的情况下尝试该命令,-i
或者-t
您将看到 Drill 提示,然后容器将立即退出。如果您添加回来-i
,它将等待命令,并且在执行此操作时它将接受网络连接。与此等效的 Compose 是stdin_open: true
命令。
这样docker-compose.yml
我就可以在以下位置看到 Drill UI http://localhost:8047
:
ENTRYPOINT /opt/drill/bin/drill-embedded
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1723 次 |
最近记录: |