Saat ini Internet of Things (IoT) berkembang begitu pesat dipergunakan dalam industri, dan MQTT merupakan protokol yang sering digunakan untuk mengimplentasikan aplikasi IoT. Eclipse-Mosquitto merupakan salah open-source message broker MQTT yang ikut berkembang. Eclipse-mosquitto dapat berjalan pada Operating System Windows, Mac and Linux Distribution. Namun, salah satu keunggulan signifikan dari Docker yaitu tidak mencampurkan antara workstation OS dengan banyak tools yang berbeda.
Menjalankan Eclipse-mosquitto pada Docker, merupakan menciptakan lingkungan testing yang sempurna. Berikut ini cara menjalankan Eclipse-mosquitto pada Docker.
- Buka Window PowerShell (admin), jalankan command dibawah untuk mengunduh image dari eclipse-mosquitto.
docker pull eclipse-mosquitto
- Menjalankan image dari mosquitto dengan konfigurasi dasar.
docker run -it --name mosquitto_app -p 1883:1883 eclipse-mosquitto
Perhatikan pada log yang muncul setelah menjalankan Container dari Mosquitto. Jika menemukan Error “Address not available” seperti gambar 1, maka diperlukan menambahkan konfigurasi berikut.
allow_anonymous true
listener 1883
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
Untuk menambahkan konfigurasi diatas, pertama-tama perlu masuk ke console dari Container mosquitto_app dengan menjalankan command. *pastikan container sedang running.
docker exec -it mosquitto_app sh
kemudian gunakan tools text editing vi atau vim untuk menambahkan konfigurasi pada mosquitto.conf,
vi mosquitto/config/mosquitto.conf
tambahkan konfigurasi minimum pada mosquitto.conf seperti gambar dibawah ini.
Setelah menambahkan konfigurasi tersebut tekan ESC untuk dapat memasukkan perintah. Masukkan perintah :w untuk menulis atau menyimpan perubahan, kemudian masukkan perintah :q untuk keluar dari console container.
Restart container mosquitto_app, dan untuk mengecek apakah mosquitto broker pada docker berjalan dengan baik, penulis menggunakan mosquitto client pada windows, MQTTBox dengan koneksi seperti berikut.
Jika status MQTT client connected berarti, mosquitto broker pada docker telah berfungsi dengan baik.