Last chance! 50% off DataCamp Premium
Sale ends in
Menyiapkan broker MQTT dari nol seharusnya tidak memakan waktu berjam-jam untuk konfigurasi dan pemecahan masalah.
Eclipse Mosquitto adalah broker MQTT open-source yang mengimplementasikan protokol MQTT v5, 3.1.1, dan 3.1, sehingga cocok untuk perangkat IoT, sistem automasi rumah, aplikasi cloud, dan arsitektur berbasis pesan apa pun. Namun memasang dan mengonfigurasi Mosquitto langsung di sistem Anda sering kali menimbulkan konflik dependensi, masalah izin, dan persoalan spesifik platform yang menghabiskan waktu pengembangan Anda. Alih-alih membangun aplikasi, Anda justru disibukkan oleh proses setup.
Docker menghilangkan sakit kepala ini dengan menyediakan lingkungan yang konsisten dan terisolasi untuk menjalankan Mosquitto di platform mana pun. Anda bisa menjalankan broker MQTT yang sepenuhnya fungsional dalam hitungan menit, lengkap dengan konfigurasi kustom, autentikasi, dan persistensi.
Dalam panduan ini, saya akan memandu Anda menerapkan Eclipse Mosquitto menggunakan Docker dan Docker Compose, mengonfigurasi autentikasi dan logging, menyiapkan persistensi data, serta menguji broker Anda dengan klien MQTT nyata.
Baru pertama kali menggunakan Docker? Saya sarankan mulai dari kursus Introduction to Docker kami untuk memahami dasar-dasarnya.
Anda tidak memerlukan sistem messaging yang berat ketika yang Anda butuhkan hanyalah komunikasi cepat dan andal antar perangkat.
MQTT adalah protokol publish-subscribe yang ringan, dirancang untuk situasi dengan bandwidth terbatas dan reliabilitas yang krusial. Bayangkan sensor IoT, aplikasi seluler, atau skenario apa pun saat perangkat perlu bertukar pesan kecil dengan cepat tanpa polling terus-menerus.
Mosquitto bertindak sebagai perantara — broker — antara publisher dan subscriber.
Publisher mengirim pesan ke topik tertentu. Subscriber mendengarkan topik tersebut. Mosquitto menangani perutean, memastikan pesan dikirim ke tempat yang tepat tanpa publisher dan subscriber perlu saling mengetahui.
Inilah alasan Docker membuat setup Mosquitto semakin baik:
Mosquitto hadir dalam dua varian: versi open-source (yang mencakup sebagian besar use case) dan Pro Edition komersial dari Cedalo dengan fitur lanjutan seperti clustering dan keamanan yang ditingkatkan. Untuk sebagian besar proyek, versi open-source sudah memenuhi kebutuhan.
Selanjutnya, saya akan membahas prasyarat lalu kita akan langsung memasang Mosquitto.
Anda perlu menjalankan Docker di sistem Anda sebelum dapat menerapkan Mosquitto.
Docker Desktop paling cocok untuk pengguna Windows dan macOS karena mencakup semua yang Anda butuhkan dalam satu paket. Pengguna Linux dapat memasang Docker CLI langsung melalui manajer paket mereka atau dari repositori resmi Docker.
Docker Compose tidak wajib, tetapi membuat pengelolaan setup multi-container jauh lebih mudah. Sebagian besar instalasi Docker Desktop sudah menyertakan Compose secara default. Jika Anda menggunakan Linux, Anda mungkin perlu memasangnya secara terpisah.
Anda juga memerlukan keterampilan dasar baris perintah. Tidak rumit, cukup kemampuan menjalankan perintah, menavigasi direktori, dan mengedit file teks.
Menjalankan mosquitto docker memerlukan tiga langkah: membuat direktori, menjalankan container, dan opsional menyiapkan Docker Compose untuk pengelolaan yang lebih mudah.
Mosquitto memerlukan penyimpanan yang terorganisasi untuk konfigurasi, data, dan log.
Buat direktori berikut untuk memulai:
mkdir mosquitto-docker
cd mosquitto-docker
mkdir config data logs
Ini memberi Anda folder yang rapi untuk file konfigurasi Mosquitto, data persisten, dan keluaran log.
Berikut fungsi masing-masing direktori:
/mosquitto/config menyimpan mosquitto.conf dan file konfigurasi tambahan/mosquitto/data menampung data pesan persisten dan informasi langganan/mosquitto/log berisi file log Mosquitto untuk debugging dan pemantauanDirektori ini akan di-mount sebagai volume di dalam container Docker, sehingga pengaturan dan data Anda tetap ada saat container dimulai ulang.
Perintah Docker dasar menjalankan Mosquitto dengan pemetaan port dan mount volume yang tepat.
docker run -d \
--name mosquitto \
-p 1883:1883 \
-v $(pwd)/mosquitto/config:/mosquitto/config \
-v $(pwd)/mosquitto/data:/mosquitto/data \
-v $(pwd)/mosquitto/log:/mosquitto/log \
eclipse-mosquitto:latest

Gambar 1 - Menjalankan Mosquitto dengan Docker
Berikut penjelasan flag yang digunakan:
-d menjalankan container di latar belakang (detached mode)--name mosquitto memberi container nama yang mudah diingat-p 1883:1883 memetakan port 1883 pada host ke port 1883 di container-v me-mount direktori lokal sebagai volume di dalam containerMosquitto 2.0+ berjalan dalam mode lokal saja secara default. Artinya, hanya menerima koneksi dari localhost kecuali Anda mengonfigurasikannya sebaliknya. Anda perlu membuat file konfigurasi untuk mengizinkan koneksi eksternal.
Docker compose untuk Mosquitto membuat pengelolaan instalasi jauh lebih sederhana, terutama saat Anda menjalankan banyak layanan.
Buat file docker-compose.yml dan tempelkan isi berikut:
services:
mosquitto:
image: eclipse-mosquitto:latest
container_name: mosquitto
restart: unless-stopped
ports:
- "1883:1883" # MQTT
- "8883:8883" # MQTTS (secure)
- "9001:9001" # WebSockets
volumes:
- ./mosquitto/config:/mosquitto/config
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
Mulai dengan perintah:
docker-compose up -d

Gambar 2 - Menjalankan Mosquitto dengan Docker Compose
Pemetaan volume bekerja sama seperti perintah Docker, tetapi Compose menangani kerumitannya. Konfigurasi port mencakup semua protokol MQTT umum: MQTT standar (1883), MQTTS aman (8883), dan koneksi WebSocket (9001).
Compose sangat berguna untuk setup multi-layanan. Misalnya, jika Anda menjalankan Home Assistant, Node-RED, atau alat IoT lain bersama Mosquitto, Anda dapat mendefinisikan semuanya dalam satu file dan memulai semua layanan sekaligus.
Selanjutnya, mari kita bahas konfigurasi lebih dalam.
Apakah konsep Docker tingkat lanjut terasa membingungkan? Kursus Intermediate Docker kami membahas lebih dari dasar-dasar.
Mosquitto tidak akan menerima koneksi eksternal secara default, Anda memerlukan file konfigurasi untuk itu.
Buat file mosquitto.conf di direktori mosquitto/config Anda dan tambahkan berikut ini:
# Basic listener configuration
listener 1883
allow_anonymous true
# WebSocket listener
listener 9001
protocol websockets
allow_anonymous true
# Persistence
persistence true
persistence_location /mosquitto/data/
# Logging
log_dest file /mosquitto/log/mosquitto.log
log_type error
log_type warning
log_type notice
log_type information
Pengaturan allow_anonymous true memungkinkan klien terhubung tanpa kredensial. Ini baik untuk pengembangan atau jaringan internal, tetapi Anda sebaiknya menonaktifkannya untuk lingkungan produksi. Saat Anda mengatur allow_anonymous false, setiap klien harus diautentikasi dengan nama pengguna dan kata sandi.
Listener WebSocket pada port 9001 mengaktifkan klien MQTT berbasis browser. Aplikasi web dapat terhubung langsung ke broker menggunakan pustaka JavaScript seperti Paho MQTT.
Autentikasi memerlukan pembuatan file kata sandi dan memperbarui konfigurasi Anda.
Buat file kata sandi di dalam container:
docker exec -it mosquitto mosquitto_passwd -c /mosquitto/config/passwd username

Gambar 3 - Autentikasi Mosquitto
Perintah ini membuat file kata sandi baru dan meminta Anda memasukkan kata sandi. Untuk pengguna tambahan, hilangkan flag -c:
docker exec -it mosquitto mosquitto_passwd /mosquitto/config/passwd another_user
Sekarang, perbarui mosquitto.conf Anda untuk mewajibkan autentikasi:
# Disable anonymous access
allow_anonymous false
# Point to password file
password_file /mosquitto/config/passwd
# Basic MQTT listener
listener 1883
# WebSocket listener
listener 9001
protocol websockets
# Persistence
persistence true
persistence_location /mosquitto/data/
# Logging
log_dest file /mosquitto/log/mosquitto.log
log_type error
log_type warning
log_type notice
log_type information
File kata sandi disimpan di volume config yang di-mount, sehingga tetap ada di antara restart container.
Enkripsi TLS melindungi lalu lintas MQTT Anda dari penyadapan dan manipulasi.
Tambahkan baris berikut ke mosquitto.conf Anda:
# Secure MQTT listener
listener 8883
cafile /mosquitto/config/ca.crt
certfile /mosquitto/config/server.crt
keyfile /mosquitto/config/server.key
# Secure WebSocket listener
listener 9002
protocol websockets
cafile /mosquitto/config/ca.crt
certfile /mosquitto/config/server.crt
keyfile /mosquitto/config/server.key
Anda perlu memperoleh sertifikat SSL untuk domain Anda. Let's Encrypt menyediakan sertifikat gratis, atau Anda dapat menggunakan reverse proxy seperti Caddy Server yang menangani pembuatan sertifikat secara otomatis. Tempatkan file sertifikat Anda di direktori mosquitto/config agar tersedia di dalam container.
Persistensi menyimpan pesan dan langganan ke disk, sementara logging yang tepat membantu Anda men-debug masalah koneksi.
Anda dapat mengonfigurasi persistensi di mosquitto.conf seperti ini:
# Enable persistence
persistence true
persistence_location /mosquitto/data/
# Save to disk every 300 seconds
autosave_interval 300
# Keep messages for offline clients
persistent_client_expiration 1d
Untuk logging, berikut cara menyiapkan logging terperinci:
# Log to file and stdout
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
# Choose what to log
log_type error
log_type warning
log_type notice
log_type information
log_type debug
# Log connection details
connection_messages true
log_timestamp true
Opsi log_type memungkinkan Anda memfilter apa yang dicatat:
error dan warning untuk pemantauan produksinotice dan information untuk wawasan operasional umumdebug untuk menelusuri masalah koneksiMount volume Anda memastikan data persistensi dan log tetap ada saat container dimulai ulang. Direktori data menyimpan semua pesan persisten dan informasi langganan, sementara direktori log menyimpan informasi debugging yang dapat diakses dari sistem host.
File konfigurasi memberi Anda kendali penuh atas perilaku Mosquitto tanpa perlu membangun ulang container.
Broker Anda belum berguna sampai Anda memastikan klien dapat terhubung dan bertukar pesan.
Alat baris perintah mosquitto_pub dan mosquitto_sub menyediakan cara tercepat untuk menguji broker Anda.
Mulailah dengan memasang Mosquitto, sesuai platform Anda:
sudo apt-get install mosquitto-clientsbrew install mosquittoMari mulai menguji tanpa autentikasi. Anda membutuhkan dua jendela atau tab terminal. Jalankan perintah ini di sesi terpisah:
# Subscribe to a topic (run this first)
mosquitto_sub -h localhost -p 1883 -t test/topic
# Publish a message (run in another terminal)
mosquitto_pub -h localhost -p 1883 -t test/topic -m "Hello MQTT"
Di tab publikasi, Anda akan melihat ini:

Gambar 4 - Mempublikasikan pesan
Dan di tab subscribe, Anda akan langsung melihat pesannya:

Gambar 5 - Berlangganan topik Mosquitto
Jika Anda memerlukan autentikasi, perintahnya serupa — Anda hanya perlu menyertakan nama pengguna dan kata sandi:
# Subscribe with username and password
mosquitto_sub -h localhost -p 1883 -t test/topic -u username -P password
# Publish with credentials
mosquitto_pub -h localhost -p 1883 -t test/topic -m "Authenticated message" -u username -P password
Jika Anda tidak ingin memasang klien Mosquitto secara lokal, jalankan di dalam container Docker Anda:
# Subscribe using the container
docker exec -it mosquitto mosquitto_sub -h localhost -t test/topic
# Publish using the container
docker exec -it mosquitto mosquitto_pub -h localhost -t test/topic -m "Container message"
Anda akan melihat ini di tab publikasi:

Gambar 6 - Mempublikasikan pesan tanpa autentikasi
Dan di tab subscribe, Anda akan melihat pesannya:

Gambar 7 - Berlangganan topik Mosquitto tanpa autentikasi
Klien GUI memudahkan pengujian skenario kompleks dan memantau lalu lintas pesan yang sedang berlangsung.
MQTT Explorer menyediakan antarmuka yang rapi untuk menelusuri topik dan mengirim pesan. Sambungkan ke localhost:1883 dan Anda akan melihat tampilan pohon semua topik aktif. Ini ideal untuk debugging alur pesan dan memahami struktur topik Anda.

Gambar 8 - Aplikasi MQTT Explorer
MQTTX menawarkan fitur yang lebih canggih seperti scripting dan pengiriman pesan massal. Kedua klien mendukung autentikasi, koneksi TLS, dan protokol WebSocket.
Pengguna Home Assistant dapat menguji integrasi MQTT langsung dari developer tools. Tambahkan detail broker Anda ke integrasi MQTT dan gunakan antarmuka publish/subscribe bawaan.
Untuk pengujian terprogram, klien Paho MQTT Python bekerja dengan baik:
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print(f"Connected with result code {rc}")
client.subscribe("test/topic")
def on_message(client, userdata, msg):
print(f"Received: {msg.payload.decode()}")
client = mqtt.Client()
# client.username_pw_set("username", "password") # If using auth
client.on_connect = on_connect
client.on_message = on_message
client.connect("localhost", 1883, 60)
client.loop_forever()
Jalankan skrip ini di satu terminal, lalu publikasikan pesan dari terminal lain atau klien GUI. Skrip akan mencetak pesan yang diterimanya, memastikan broker Anda merutekan trafik dengan benar.
Berikut yang perlu Anda lakukan untuk mempublikasikan pesan:

Gambar 9 - Mempublikasikan pesan untuk contoh Python
Dan Anda akan melihat ini di sesi terminal yang menjalankan skrip Python:

Gambar 10 - Menerima pesan untuk contoh Python
Operasi publish dan subscribe yang berfungsi menandakan setup Mosquitto Docker Anda siap untuk aplikasi nyata.
Menjalankan Mosquitto berdampingan dengan Home Assistant di Docker menciptakan hub messaging IoT lengkap tanpa repot konfigurasi jaringan.
Docker Compose membuatnya sederhana. Kedua layanan dapat berkomunikasi melalui jaringan internal Docker tanpa mengekspos port tambahan atau menangani alamat IP.
Berikut docker-compose.yml lengkap yang menjalankan kedua layanan:
services:
mosquitto:
image: eclipse-mosquitto:latest
container_name: mosquitto
restart: unless-stopped
ports:
- "1883:1883"
- "9001:9001"
volumes:
- ./mosquitto/config:/mosquitto/config
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
networks:
- homeassistant
homeassistant:
image: ghcr.io/home-assistant/home-assistant:stable
container_name: homeassistant
restart: unless-stopped
ports:
- "8123:8123"
volumes:
- ./homeassistant:/config
- /etc/localtime:/etc/localtime:ro
networks:
- homeassistant
depends_on:
- mosquitto
networks:
homeassistant:
driver: bridge
Bagian networks membuat jaringan bersama di mana kedua container dapat saling menjangkau berdasarkan nama. Home Assistant dapat terhubung ke mosquitto:1883 alih-alih menggunakan localhost atau alamat IP.
Mulai kedua layanan dengan:
docker-compose up -d
Selanjutnya, konfigurasikan integrasi MQTT melalui antarmuka web Home Assistant. Arahkan ke Settings > Devices & Services > Add Integration, lalu cari "MQTT."
Masukkan detail koneksi berikut:
mosquitto (nama container)1883Klik Submit dan Home Assistant akan menguji koneksi. Jika berhasil, Anda akan melihat MQTT muncul di daftar integrasi.

Gambar 11 - Konfigurasi Mosquitto dengan Homelab
Sekarang Anda dapat menambahkan perangkat MQTT, membuat automasi yang mempublikasikan pesan, dan memantau data sensor melalui topik. Integrasi MQTT Home Assistant menangani penemuan perangkat secara otomatis untuk perangkat yang kompatibel.
Sebagian besar masalah docker mosquitto berkutat pada izin, port, atau kesalahan konfigurasi yang memblokir koneksi.
Ini terjadi ketika container tidak dapat menulis ke direktori host Anda. Anda akan melihat pesan error seperti "Permission denied" atau "Cannot create directory" di log.
Perbaiki dengan mengatur kepemilikan yang tepat pada direktori Anda:
sudo chown -R 1883:1883 mosquitto/
Container Mosquitto berjalan sebagai user ID 1883, jadi direktori host Anda harus disesuaikan. Di beberapa sistem, Anda mungkin perlu membuat pengguna terlebih dahulu:
sudo useradd -u 1883 mosquitto
sudo chown -R mosquitto:mosquitto mosquitto/
Ini terjadi saat ada proses lain yang menggunakan port 1883. Periksa apa yang berjalan pada port tersebut:
# Linux/macOS
sudo lsof -i :1883
# Windows
netstat -an | findstr :1883
Jika layanan lain menggunakan port tersebut, hentikan atau petakan Mosquitto ke port lain:
docker run -p 1884:1883 eclipse-mosquitto:latest
Ini terjadi bahkan saat container Anda berjalan. Mosquitto 2.0+ secara default hanya menerima koneksi dari localhost kecuali Anda mengonfigurasikannya sebaliknya.
Buat file mosquitto.conf dasar untuk mengizinkan koneksi eksternal:
listener 1883
allow_anonymous true
Tempatkan file ini di direktori mosquitto/config Anda dan mulai ulang container.
Ini berarti mount volume Anda tidak berfungsi dengan benar. Periksa apakah path bersifat absolut dan direktori ada:
# Wrong - relative path might not work
-v ./mosquitto/config:/mosquitto/config
# Better - absolute path
-v $(pwd)/mosquitto/config:/mosquitto/config
Buat direktori sebelum memulai container:
mkdir -p mosquitto/{config,data,log}
Ini akan menyebabkan masalah izin yang persisten. Container diharapkan berjalan sebagai user 1883, tetapi sistem host Anda mungkin memiliki kebutuhan kepemilikan yang berbeda.
Paksa container berjalan sebagai pengguna Anda:
docker run --user $(id -u):$(id -g) eclipse-mosquitto:latest
Atau sesuaikan izin direktori host Anda agar sesuai dengan ekspektasi container. Pendekatan container lebih baik untuk pengembangan, sementara memperbaiki izin host lebih cocok untuk penerapan produksi.
Periksa log container ketika ada masalah — biasanya log memberi tahu Anda secara jelas letak masalahnya.
Mosquitto open-source mencakup sebagian besar use case, tetapi lingkungan enterprise memerlukan fitur yang hanya tersedia di Pro Edition.
Manajemen pengguna berbasis peran memungkinkan Anda mendefinisikan izin granular untuk berbagai grup pengguna. Alih-alih mengelola akses pengguna satu per satu, Anda membuat peran seperti "sensor-readers", "actuator-controllers", atau "admin-users" dan menetapkan izin ke seluruh peran. Pengguna mewarisi izin dari peran yang ditugaskan, sehingga lebih mudah mengelola akses di ratusan atau ribuan perangkat.
Anda dapat membatasi akses berdasarkan pola topik, rentang IP, atau jendela waktu. Ini jauh lebih baik daripada mengonfigurasi file ACL secara manual saat Anda mengelola deployment IoT yang kompleks dengan kebutuhan keamanan berbeda-beda.
Opsi autentikasi lanjutan melampaui kombinasi nama pengguna/kata sandi sederhana. Autentikasi token JWT terintegrasi dengan penyedia identitas yang ada seperti Auth0, Okta, atau sistem SSO perusahaan Anda. Integrasi LDAP terhubung langsung ke Active Directory atau layanan direktori enterprise lainnya.
Inspeksi dan pemantauan mendalam memberi Anda visibilitas waktu nyata atas aliran pesan, pola koneksi, dan kinerja broker. Pro Edition menyertakan dashboard bawaan yang menampilkan klien mana yang mengonsumsi bandwidth terbanyak, topik mana dengan laju pesan tertinggi, dan di mana bottleneck terbentuk.
Anda mendapatkan metrik terperinci tentang latensi pesan, kedalaman antrean, dan pola perilaku klien. Data ini membantu Anda mengoptimalkan struktur topik dan mengidentifikasi klien bermasalah sebelum memengaruhi seluruh sistem.
Integrasi basis data dan layanan cloud menghilangkan kebutuhan aplikasi bridge kustom. Pro Edition dapat meneruskan pesan secara otomatis ke PostgreSQL, MongoDB, InfluxDB, AWS IoT Core, Azure IoT Hub, atau Google Cloud IoT. Anda mendefinisikan aturan perutean yang menentukan pesan mana pergi ke mana berdasarkan pola topik, konten pesan, atau metadata klien.
Antrean persisten menangani skenario volume tinggi saat persistensi standar Mosquitto tidak memadai. Pro Edition dapat melakukan buffer jutaan pesan untuk klien offline dan mendistribusikan beban di beberapa instance broker. Termasuk manajemen antrean otomatis yang mencegah kehabisan memori dan mempertahankan jaminan urutan pesan.
Dukungan clustering memungkinkan Anda menjalankan beberapa instance broker yang berbagi beban pesan dan menyediakan perlindungan failover. Saat satu broker down, klien secara otomatis tersambung ke instance yang sehat tanpa kehilangan pesan atau langganan.
Pro Edition masuk akal ketika Anda memerlukan keandalan dan fitur manajemen tingkat enterprise yang akan memakan waktu berbulan-bulan jika dibangun sendiri.
Docker memudahkan deployment, tetapi bukan solusi sempurna untuk setiap skenario.
mosquitto ke mesin lain, jalankan perintah Docker yang sama, dan Anda kembali online. Pindah antar penyedia cloud atau upgrade hardware menjadi sesederhana transfer file.Docker tidak selalu tanpa cela.
Docker unggul saat Anda membutuhkan deployment yang konsisten dan pengelolaan mudah di berbagai lingkungan.
Menjalankan Mosquitto di Docker memberi Anda broker MQTT andal yang bekerja konsisten di semua lingkungan. Baik Anda membuat prototipe perangkat IoT, membangun sistem automasi rumah, atau menghubungkan sensor di lingkungan pengembangan, Docker menghilangkan kerumitan setup dan memungkinkan Anda fokus pada proyek inti.
Jika Anda berencana membawa Mosquitto ke produksi, ingat hal ini:
mosquitto_passwd, konfigurasikan enkripsi TLS dengan sertifikat yang tepatBroker MQTT yang tidak diamankan menjadi pintu terbuka bagi penyerang untuk memantau komunikasi perangkat atau menyuntikkan perintah berbahaya.
Untuk deployment enterprise yang membutuhkan fitur lanjutan seperti kontrol akses berbasis peran, clustering, atau integrasi LDAP, Mosquitto Pro Edition menyediakan alat manajemen dan skalabilitas yang melampaui versi open-source.
Siap meningkatkan kemampuan Docker dan Kubernetes Anda? Daftar di jalur keterampilan Containerization and Virtualization with Docker and Kubernetes untuk membangun keterampilan relevan dan dilirik perekrut.
Docker menyediakan konsistensi lintas platform dan menghilangkan konflik dependensi yang sering terjadi pada instalasi native. Setup Mosquitto Anda bekerja identik di Windows, macOS, dan Linux tanpa perlu mencari paket spesifik platform. Docker juga memudahkan pembaruan versi dan rollback — cukup ganti tag image dan mulai ulang container. Namun, instalasi native dapat menawarkan kinerja sedikit lebih baik untuk skenario throughput tinggi.
Anda tentu bisa menjalankan Mosquitto dengan perintah Docker biasa menggunakan docker run. Docker Compose hanya memudahkan pengelolaan, terutama saat Anda menjalankan banyak layanan seperti Home Assistant atau Node-RED bersamaan dengan Mosquitto. Jika Anda hanya menjalankan Mosquitto saja, perintah docker run sederhana sudah sangat memadai.
Mosquitto di Docker bisa siap produksi dengan konfigurasi yang tepat. Anda perlu menonaktifkan akses anonim, menyiapkan autentikasi dengan mosquitto_passwd, mengonfigurasi enkripsi TLS, dan membatasi akses jaringan hanya untuk klien tepercaya. Container itu sendiri tidak menambah kerentanan keamanan, tetapi Anda bertanggung jawab mengamankan konfigurasi Mosquitto dan lingkungan Docker.
Mosquitto 2.0+ secara default berada di mode lokal saja, yang hanya menerima koneksi dari localhost di dalam container. Anda perlu membuat file mosquitto.conf dengan listener 1883 dan allow_anonymous true (untuk pengujian) atau pengaturan autentikasi yang tepat. Tempatkan file config ini di direktori /mosquitto/config yang di-mount dan mulai ulang container.
Container Mosquitto berjalan sebagai user ID 1883, tetapi direktori host Anda mungkin memiliki kepemilikan berbeda. Jalankan sudo chown -R 1883:1883 mosquitto/ untuk memperbaiki kepemilikan, atau buat pengguna mosquitto terlebih dahulu dengan sudo useradd -u 1883 mosquitto lalu ubah kepemilikan. Di beberapa sistem, Anda juga bisa menjalankan container dengan --user $(id -u):$(id -g) agar sesuai dengan pengguna host Anda.
Kursus Teratas DataCamp
{count, plural, one {Kursus} other {Kursus}}
{count, plural, one {Kursus} other {Kursus}}
{count, plural, one {Program} other {Program}}
{count, plural, one {blog} other {blogs}}
Hugo Bowne-Anderson
13 mnt
{count, plural, one {blog} other {blogs}}
Dario Radečić
15 mnt
{count, plural, one {blog} other {blogs}}
David Woods
13 mnt

{count, plural, one {blog} other {blogs}}
Javier Canales Luna
14 mnt