emqx 是一个开源的、高度可扩展的、跨平台的mqtt代理,用于处理来自物联网、移动应用程序和分布式系统的数据。要使用docker搭建emqx,你需要首先从docker hub拉取emqx的官方镜像,然后可以通过docker cli命令或docker compose来运行这个容器。
使用 docker cli 搭建 emqx
拉取 emq x 镜像:
docker pull emqx/emqx:5.5.0
运行emqx容器:
docker run -d --name emqx \ -p 1883:1883 -p 8083:8083 \ -p 8084:8084 -p 8883:8883 \ -p 18083:18083 \ -v $pwd/data:/opt/emqx/data \ -v $pwd/log:/opt/emqx/log \ emqx/emqx:5.5.0
- -d: 表示在后台运行容器。
- –name emqx: 设置容器的名称为emqx。
- -p 1883:1883: 将容器内部的mqtt默认端口1883映射到宿主机的同一端口,用于客户端连接。
- -p 18083:18083: 将容器内部的emq x dashboard管理界面默认端口18083映射到宿主机的同一端口,用于通过网页访问管理界面。
查看容器日志:
docker logs emqx
emqx: 运行中的容器名称。
使用 docker compose 搭建 emqx
如果你想要使用docker compose来部署emqx,你需要一个docker-compose.yml配置文件。下面是一个简单的例子:
version: '3' services: emqx1: image: emqx:5.5.0 container_name: emqx1 environment: - "emqx_node_name=emqx@node1.emqx.io" - "emqx_cluster__discovery_strategy=static" - "emqx_cluster__static__seeds=[emqx@node1.emqx.io,emqx@node2.emqx.io]" healthcheck: test: ["cmd", "/opt/emqx/bin/emqx ctl", "status"] interval: 5s timeout: 25s retries: 5 networks: emqx-bridge: aliases: - node1.emqx.io ports: - 1883:1883 - 8083:8083 - 8084:8084 - 8883:8883 - 18083:18083 # volumes: # - $pwd/emqx1_data:/opt/emqx/data emqx2: image: emqx:5.5.0 container_name: emqx2 environment: - "emqx_node_name=emqx@node2.emqx.io" - "emqx_cluster__discovery_strategy=static" - "emqx_cluster__static__seeds=[emqx@node1.emqx.io,emqx@node2.emqx.io]" healthcheck: test: ["cmd", "/opt/emqx/bin/emqx ctl", "status"] interval: 5s timeout: 25s retries: 5 networks: emqx-bridge: aliases: - node2.emqx.io # volumes: # - $pwd/emqx2_data:/opt/emqx/data networks: emqx-bridge: driver: bridge
- version: ‘3’: 指定docker compose配置文件的版本号。
- services: 定义要运行的服务集。
- emqx: 这是定义的服务名称。
- image: 使用的emq x镜像名称。
- container_name: 指定容器的名称。
- ports: 容器的端口映射列表。
- “1883:1883”: 将容器的1883端口映射到宿主机的1883端口。
- “18083:18083”: 将容器的18083端口映射到宿主机的18083端口。
- restart: 容器的重启策略,always表示如果容器退出,docker将自动重启它。
使用以下命令来启动服务:
docker-compose up -d
- up: 创建并启动服务。
- -d: 在后台运行服务。
要停止并移除服务及相关网络,可以使用:
docker-compose down
- down: 停止并移除所有由docker-compose.yml文件定义的服务和网络。
到此这篇关于docker搭建emqx的文章就介绍到这了,更多相关docker搭建emqx内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论