Docker EMQX 自定义启动端口

引言

在Docker容器化部署应用程序的过程中,我们经常需要自定义应用程序的启动端口。本文将介绍如何在Docker中使用EMQX消息服务器,并自定义其启动端口。

EMQX简介

EMQX是一个基于Erlang/OTP平台的高性能、可伸缩、可靠的开源物联网消息服务器。它支持MQTT、MQTT-SN、CoAP等多种传输协议,并提供了丰富的功能和强大的扩展性。

Docker安装

首先,我们需要在本地系统上安装Docker。Docker是一个开源的容器化平台,可以将应用程序及其依赖项打包为一个可移植的容器,从而实现快速部署和管理。

Docker的安装过程因操作系统的不同而有所差异。以Ubuntu为例,我们可以使用以下命令进行安装:

sudo apt-get update
sudo apt-get install docker.io

安装完成后,可以使用以下命令验证Docker是否成功安装:

docker version

下载EMQX镜像

接下来,我们需要下载EMQX的Docker镜像。Docker镜像是一个只读的文件,其中包含了应用程序及其依赖项的所有内容。

使用以下命令从Docker Hub下载EMQX镜像:

docker pull emqx/emqx

下载完成后,可以使用以下命令查看已下载的镜像:

docker images

创建EMQX容器

现在,我们可以创建一个基于EMQX镜像的Docker容器。容器是Docker运行时的实例,可以被启动、停止和删除。

使用以下命令创建一个名为emqx1的EMQX容器,并将容器的8080端口映射到主机的8888端口:

docker run -d --name emqx1 -p 8888:8080 emqx/emqx

在这个命令中,-d参数表示以后台模式启动容器,--name参数指定容器的名称,-p参数将容器的8080端口映射到主机的8888端口。

可以使用以下命令查看正在运行的容器:

docker ps

自定义启动端口

默认情况下,EMQX的Web管理界面使用8080端口。如果我们希望使用其他端口,可以通过修改EMQX配置文件来实现。

首先,我们需要通过以下命令进入正在运行的EMQX容器的命令行界面:

docker exec -it emqx1 /bin/sh

在命令行界面中,我们可以使用以下命令编辑EMQX的配置文件:

vi /opt/emqx/etc/emqx.conf

在配置文件中,我们可以找到以下内容:

# EMQX Dashboard
dashboard.listener.http = 18083
dashboard.listener.https = 18084

这表示EMQX的Web管理界面监听18083和18084端口。我们可以将其修改为我们希望的端口,例如8888和8889:

# EMQX Dashboard
dashboard.listener.http = 8888
dashboard.listener.https = 8889

保存并退出配置文件。然后,重启EMQX服务以使配置生效:

emqx restart

现在,我们可以使用以下URL访问EMQX的Web管理界面:

http://localhost:8888

总结

本文介绍了如何在Docker中使用EMQX消息服务器,并自定义其启动端口。通过修改EMQX的配置文件,我们可以轻松地自定义启动端口,并在Docker容器中部署和管理EMQX。

希望本文对您有所帮助,谢谢阅读!

关系图

下图是EMQX的关系图,展示了其组件和关系:

erDiagram
    EMQX --|{ MQTT }
    EMQX --|{ MQTT-SN }
    EMQX --|{ CoAP }
    EMQX --|{ WebSockets }
    EMQX --|{ REST API