# Docker Image Example This is an example on how you could create your own Docker Image For Apache ActiveMQ Artemis based on CentOS or Ubuntu. # Preparing Use the script ./prepare-docker.sh as it will copy the docker files under the binary distribution. ``` $ ./prepare-docker.sh $ARTEMIS_HOME ``` # Building Go to `$ARTEMIS_HOME` where you prepared the binary with Docker files. ## For Ubuntu: From within the `$ARTEMIS_HOME` folder: ``` $ docker build -f ./docker/Dockerfile-ubuntu -t artemis-ubuntu . ``` ## For CentOS From within the `$ARTEMIS_HOME` folder: ``` $ docker build -f ./docker/Dockerfile-centos -t artemis-centos . ``` **Note:** `-t artemis-ubuntu`,`-t artemis-centos` are just tag names for the purpose of this guide # Variables: - ARTEMIS_USER - ARTEMIS_PASSWORD - ANONYMOUS_LOGIN Default here is FALSE. If you set this to true, it will change security settings passed on the broker instance creation. - CREATE_ARGUMENTS Default here is `--user ${ARTEMIS_USER} --password ${ARTEMIS_PASSWORD} --silent --http-host 0.0.0.0 --relax-jolokia"` This will be passed straight to `./artemis create` during the execution. # Mapping point - `/var/lib/artemis-instance` It's possible to map a folder as the instance broker. This will hold the configuration and the data of the running broker. This is useful for when you want the data persisted outside of a container. # Lifecycle of the execution A broker instance will be created during the execution of the instance. If you pass a mapped folder for `/var/lib/artemis-instance` an image will be created or reused depending on the contents of the folder. ## Running a CentOS image The image just created in the previous step allows both stateless or stateful runs. The stateless run is achieved by: ``` $ docker run --rm -it -p 61616:61616 -p 8161:8161 artemis-centos ``` The image will also support mapped folders and mapped ports. To run the image with the instance persisted on the host: ``` docker run -it -p 61616:61616 -p 8161:8161 -v :/var/lib/artemis-instance artemis-centos ``` where `` is a folder where the broker instance is supposed to be saved and reused on each run.