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 次 |
| 最近记录: |