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