Starting with the simplest Docker Compose App from the list of examples, the mosquitto container is a message broker that implements the MQTT protocol. It allows any device connected to the same network to publish or subscribe to topics, allowing us to establish communication between different devices.
In this example, it is used slightly differently, instead of different devices communicating, two different containers use MQTT to establish a communication between them.
Open a new terminal on your host machine and find the container folder used in the previous tutorial.
In the containers folder, use git to download the
mosquitto application from the reference extra-container repository:
git remote add fio https://github.com/foundriesio/extra-containers.git git remote update git checkout remotes/fio/tutorials -- mosquitto
mosquitto application with the
docker-compose.yml file should be inside your
tree -L 2 .
. ├── mosquitto │ └── docker-compose.yml ├── README.md └── shellhttpd ├── docker-build.conf ├── docker-compose.yml ├── Dockerfile ├── httpd.sh └── shellhttpd.conf
Check the content of your
# mosquitto/docker-compose.yml version: '3.2' services: mosquitto: image: eclipse-mosquitto:1.6.12 restart: unless-stopped ports: - 1883:1883
mosquitto/docker-compose.yml file has all the configuration for the
mosquitto Docker Compose App.
version: Denotes what Docker Compose version it is using.
services: Defines all the different containers it will create.
mosquitto: Name of the first service.
image: Specifies the pre-built Docker Container Image eclipse-mosquitto version 1.6.12 from
unless-stopped, which means that the Docker Container will restart, except that when the container is stopped (manually or otherwise), it is not restarted even after Docker daemon restarts.
port: Map the container’s ports to the host machine