Docker image for Druid

Hi, I just wonder whether we can have official docker image for Druid on Docker Hub?

Hey Junying,

depends on which version you're looking for.

You can find the post-incubation images (0.17+) at https://hub.docker.com/r/apache/druid
The older images, pre 0.17, can be found here: https://hub.docker.com/r/apache/incubator-druid

Regards, Felix

Thanks Felix.

I pulled the post-incubation image and couldn’t run it for some reasons. What was the docker command to run the image again?

Thank you very much!

docker run --rm -i -p 8888:8888 apache/druid:0.17.0

2020-02-06T21:10:01+0000 startup service
Setting 172.17.0.2= in /runtime.properties
cat: can’t open ‘/jvm.config’: No such file or directory
2020-02-06T21:10:02,669 INFO [main] org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 5.2.5.Final
2020-02-06T21:10:03,166 INFO [main] org.apache.druid.initialization.Initialization - Loading extension [druid-hdfs-storage], jars: api-util-1.0.3.jar, nimbus-jose-jwt-4.41.1.jar, xmlenc-0.52.jar, hadoop-annota
tions-2.8.5.jar, jsp-api-2.1.jar, hadoop-common-2.8.5.jar, hadoop-mapreduce-client-common-2.8.5.jar, hadoop-mapreduce-client-core-2.8.5.jar, jackson-core-asl-1.9.13.jar, hadoop-auth-2.8.5.jar, jetty-sslengine-
6.1.26.jar, apacheds-kerberos-codec-2.0.0-M15.jar, accessors-smart-1.2.jar, hadoop-yarn-server-common-2.8.5.jar, api-asn1-api-1.0.0-M20.jar, hadoop-yarn-client-2.8.5.jar, jcip-annotations-1.0-1.jar, hadoop-map
reduce-client-shuffle-2.8.5.jar, hadoop-hdfs-client-2.8.5.jar, druid-hdfs-storage-0.17.0.jar, jackson-mapper-asl-1.9.13.jar, hadoop-client-2.8.5.jar, asm-7.1.jar, htrace-core4-4.0.1-incubating.jar, apacheds-i1
8n-2.0.0-M15.jar, commons-digester-1.8.jar, curator-recipes-4.1.0.jar, hadoop-mapreduce-client-jobclient-2.8.5.jar, gson-2.2.4.jar, commons-configuration-1.6.jar, json-smart-2.3.jar, hadoop-yarn-api-2.8.5.jar,
commons-collections-3.2.2.jar, leveldbjni-all-1.8.jar, curator-framework-4.1.0.jar, hadoop-mapreduce-client-app-2.8.5.jar, commons-net-3.6.jar
2020-02-06T21:10:03,174 INFO [main] org.apache.druid.initialization.Initialization - Loading extension [druid-kafka-indexing-service], jars: zstd-jni-1.3.3-1.jar, druid-kafka-indexing-service-0.17.0.jar, kafka
-clients-2.2.1.jar, snappy-java-1.1.7.2.jar, lz4-java-1.6.0.jar
2020-02-06T21:10:03,175 INFO [main] org.apache.druid.initialization.Initialization - Loading extension [druid-datasketches], jars: druid-datasketches-0.17.0.jar, commons-math3-3.6.1.jar
usage: druid []

The Docker images assume you're running a clean container architecture which means essentially one process per container. This is to facilitate leveraging scalability benefits from orchestration systems like k8s as you can choose to scale horizontally per-process.

Therefore it comes with it's own wrapper script. You need to supply an argument that tells it which process to start. If you look closely the output you sent says "usage: druid <command> [<args>]".

IMHO the nicest way to get started is to use the supplied distribution/docker/docker-compose.yml which will also take care of handling aspects like service interdependencies or persistency.

Regards, Felix

Hey Felix,

what would be the docker command to start a specific service?
Also can this image be used directly with druid operator? If yes, What would be the startScript for it?

Hello,

Please take a look at the below document for more information about running Druid in docker.

https://github.com/apache/druid/blob/master/docs/tutorials/docker.md

Regards,

Muthu Lalapet.