Step 2: Run ControlBird CE
Start the ControlBird CE container with a single command.
Start ControlBird
Run the following command to start ControlBird CE. This pulls the image (if not already cached) and starts the container:
docker run -d \ --name controlbird \ -p 3000:3000 \ -v controlbird-data:/opt/controlbird/data \ controlbird/ce:latestWhat This Does
-dRuns in the background (detached mode)--name controlbirdNames the container for easy management-p 3000:3000Web UI: access ControlBird in your browser-v controlbird-data:...Persists your data across container restartsWhy the kernel port is not published
Earlier versions of this guide also published the kernel port with -p 9100:9100. You do not need it. Services inside the container reach the kernel over localhost, and the Shell app runs the cb-* tools in there as well, so a single node works without it.
Add it only if you are running several nodes that peer with each other, or you want to run the CLI tools from your host. Even then, only do it on a network you trust. Anything that can reach that port can read and write the whole store, so it should never face the public internet.
Additional Ports
If you plan to use protocol integrations, you can expose additional ports:
-p 1883:1883: MQTT broker-p 4840:4840: OPC UA server-p 502:502: Modbus TCP server
In-Memory Store
By default CE stores entity and field data in SQLite, with a bounded memory footprint. Add -e STORE_BACKEND=memory to the docker run command to keep the whole dataset resident in RAM instead, for sub-millisecond reads. Durability is the same either way, since both backends persist through the same write-ahead log and snapshots, so the trade-off is RAM usage that grows with your data, not data safety. On a small host like a Raspberry Pi, the default SQLite backend is usually the better fit.
Verify It's Running
Check that the container is up:
docker ps You should see controlbird listed with status Up. The web UI takes a few seconds to initialize on first start.
Managing the Container
Stop
docker stop controlbirdStart Again
docker start controlbirdView Logs
docker logs -f controlbirdRemove
docker rm -f controlbirdYour data is safe in the controlbird-data volume.