1
2
mirror of https://github.com/vimagick/dockerfiles synced 2024-06-16 03:48:44 +00:00
dockerfiles/mosquitto
2017-04-22 16:53:12 +08:00
..
arm update mosquitto 2016-11-03 01:37:30 +08:00
data add ices 2017-04-22 16:53:12 +08:00
docker-compose.yml add ices 2017-04-22 16:53:12 +08:00
Dockerfile update mosquitto 2016-11-03 01:37:30 +08:00
README.md add ices 2017-04-22 16:53:12 +08:00

mosquitto

Mosquitto is an open source (BSD licensed) message broker that implements the MQ Telemetry Transport protocol versions 3.1 and 3.1.1.

docker-compose.yml

mosquitto:
  image: vimagick/mosquitto
  ports:
    - "1883:1883"
    - "8080:8080"
    - "8883:8883"
  volumes:
    - ./data/mosquitto.conf:/etc/mosquitto/mosquitto.conf
    - ./data/pwfile:/etc/mosquitto/pwfile
    - ./data:/var/lib/mosquitto
  restart: always

mosquitto.conf

port 8883
log_dest stdout
password_file /etc/mosquitto/pwfile
persistence true
persistence_location /var/lib/mosquitto
cafile /var/lib/mosquitto/ca.crt
certfile /var/lib/mosquitto/server.crt
keyfile /var/lib/mosquitto/server.key
require_certificate false

It is important to use different certificate subject parameters for your CA, server and clients.

server

$ mkdir -p data
$ touch data/mosquitto.conf data/pwfile
$ docker-compose up -d
$ docker-compose exec mosquitto sh
>>> cd /etc/mosquitto
>>> echo username:password >> data/pwfile
>>> mosquitto_passwd -U passwd
>>> exit
$ docker-compose restart
$ docker-compose logs -f
Attaching to mosquitto_mosquitto_1
mosquitto_1  | 1478107412: mosquitto version 1.4.8 (build date 2016-05-16 14:17:19+0000) starting
mosquitto_1  | 1478107412: Config loaded from /etc/mosquitto/mosquitto.conf.
mosquitto_1  | 1478107412: Opening ipv4 listen socket on port 8883.
mosquitto_1  | 1478107412: Opening ipv6 listen socket on port 8883.
mosquitto_1  | 1478107437: New connection from 192.168.31.102 on port 8883.
mosquitto_1  | 1478107437: New client connected from 192.168.31.102 as mosqsub/38158-Kevins-Ma (c1, k60).
mosquitto_1  | 1478107585: New client connected from 192.168.31.102 as mosqpub/38324-Kevins-Ma (c1, k60).
mosquitto_1  | 1478107585: Client mosqpub/38324-Kevins-Ma disconnected.

client

$ mosquitto_sub -d -h 192.168.31.231 -p 8883 --cafile ca.crt --insecure -u username -P password -t hello
Client mosqsub/38158-Kevins-Ma sending CONNECT
Client mosqsub/38158-Kevins-Ma received CONNACK
Client mosqsub/38158-Kevins-Ma sending SUBSCRIBE (Mid: 1, Topic: hello, QoS: 0)
Client mosqsub/38158-Kevins-Ma received SUBACK
Subscribed (mid: 1): 0
Client mosqsub/38158-Kevins-Ma sending PINGREQ
Client mosqsub/38158-Kevins-Ma received PINGRESP
received PUBLISH (d0, q0, r0, m0, 'hello', ... (5 bytes))
world
Client mosqsub/38158-Kevins-Ma sending PINGREQ
Client mosqsub/38158-Kevins-Ma received PINGRESP
$ mosquitto_pub -d -h 192.168.31.231 -p 8883 --cafile ca.crt --insecure -u username -P password -t hello -m world
Client mosqpub/38324-Kevins-Ma sending CONNECT
Client mosqpub/38324-Kevins-Ma received CONNACK
Client mosqpub/38324-Kevins-Ma sending PUBLISH (d0, q0, r0, m1, 'hello', ... (5 bytes))
Client mosqpub/38324-Kevins-Ma sending DISCONNECT