Deploy EMQX Edge with Docker
This guide walks you through deploying EMQX Edge using the official Docker image. You will learn how to start EMQX Edge quickly and, if needed, load a custom configuration file when launching the container.
Prerequisites
Before you start, ensure that:
- Docker is installed and running on your host machine.
- The host machine has access to the Internet to pull images from Docker Hub.
Pull the EMQX Edge Docker Image
The following command uses 1.2.0 as an example. Replace this version number with the specific EMQX Edge release you want to deploy.
docker pull emqx/emqx-edge:1.2.0Note: EMQX Edge Docker images are architecture-specific.
- For x86_64 platforms, use:
emqx/emqx-edge:1.2.0.- For arm64 platforms, use:
emqx/emqx-edge:1.2.0-arm64.
Example for pulling the arm64 image:
docker pull emqx/emqx-edge:1.2.0-arm64Start EMQX Edge Container
To start EMQX Edge with default settings, run the following command:
docker run -d -it --name emqx-edge \
-p 1883:1883 \
-p 8081:8081 \
-p 8083:8083 \
-p 8086:8086 \
-p 8883:8883 \
emqx/emqx-edge:<version>This command performs the following actions:
- Creates and runs a detached container named
emqx-edge. - Maps the default EMQX Edge service ports to the host system.
- It uses the image tag
<version>, which you should replace with the release you want to run.
You can check whether EMQX Edge is running by executing:
docker psExpected output should show the emqx-edge container with Up status.
Use Architecture-Specific Image
If you are deploying on an arm64 device, replace the image tag in the command above as follows:
docker run -d -it --name emqx-edge \
-p 1883:1883 \
-p 8081:8081 \
-p 8083:8083 \
-p 8086:8086 \
-p 8883:8883 \
emqx/emqx-edge:<version>-arm64Start EMQX Edge with a Custom Configuration File
EMQX Edge stores its configuration files under the /opt/emqx-edge directory inside the container. The main configuration file is:
/opt/emqx-edge/nanomq.confNote: Configuration file details are covered in the Configuration section.
To start EMQX Edge using a custom configuration file located in the current directory, run:
docker run -d -it --name emqx-edge \
-v ./nanomq.conf:/opt/emqx-edge/nanomq.conf \
-p 1883:1883 \
-p 8081:8081 \
-p 8083:8083 \
-p 8086:8086 \
-p 8883:8883 \
emqx/emqx-edge:<version>This command starts EMQX Edge with the following configuration:
- It mounts your local
nanomq.conffile into the container at/opt/emqx-edge/nanomq.conf, which is the stable configuration path used by EMQX Edge. - It ensures that your custom configuration overrides the default settings inside the container.
- It starts EMQX Edge with the required MQTT and HTTP service ports exposed.
Verify the Deployment
After the container starts successfully, you can verify EMQX Edge status through:
Docker logs
bashdocker logs emqx-edgeWeb Dashboard Open your browser and visit: http://localhost:8081. Log in with default credentials:
- Username:
admin - Password:
public
- Username:
If you can access the dashboard or see normal startup logs, your EMQX Edge deployment is successful.