Run TIBCO FTL® in Docker
Prerequisites
Before you start, you'll need:
- Docker (version 23.0+ required) installed and running on your system
- The latest
linux_x86_64install of TIBCO FTL from the TIBCO download site
Download and Build
Download the latest TIBCO FTL installation for linux_x86_64 from the TIBCO download site. In the same directory, run these commands to fetch the quickstart Dockerfile and build the quickstart image.
ARM users (including modern Macs with Apple Silicon) must include the --platform=linux/amd64 flag in all docker commands, as TIBCO FTL does not natively support ARM.
- Linux
- Windows
curl -O https://raw.githubusercontent.com/TIBCOSoftware/msg-quickstart/refs/heads/main/quickstart/extra/ftl/Dockerfile
docker build --platform=linux/amd64 -t ftl-quickstart:7.3 .
curl -O https://raw.githubusercontent.com/TIBCOSoftware/msg-quickstart/refs/heads/main/quickstart/extra/ftl/Dockerfile
docker build --platform=linux/amd64 -t ftl-quickstart:7.3 .
Start the FTL Server
This command will start FTL server in a container with the newly pulled image. The container runs the FTL server in preview_mode, which lets you run FTL without a license for 6 hours.
- Linux
- Windows
docker run --platform=linux/amd64 --name ftlserver -p 8585:8585 -d ftl-quickstart:7.3
docker run --platform=linux/amd64 --name ftlserver -p 8585:8585 -d ftl-quickstart:7.3
Optional: Use a license file instead of preview mode
By default, the container starts in preview_mode (no license required, valid for 6 hours). If you have a TIBCO FTL license file, you can mount it into the container at /license and the server will use it automatically — no other changes needed.
- Linux
- Windows
docker run --platform=linux/amd64 --name ftlserver -p 8585:8585 \
-v /path/to/license.bin:/license:ro \
-d ftl-quickstart:7.3
docker run --platform=linux/amd64 --name ftlserver -p 8585:8585 ^
-v C:\path\to\license.bin:/license:ro ^
-d ftl-quickstart:7.3
Replace /path/to/license.bin with the absolute path to your license file on the host.
We can then verify that the FTL server has started using a tibftladmin command:
- Linux
- Windows
docker run --platform=linux/amd64 --rm --network container:ftlserver \
ftl-quickstart:7.3 tibftladmin \
-a -ftls "http://localhost:8585"
docker run --platform=linux/amd64 --rm --network container:ftlserver ^
ftl-quickstart:7.3 tibftladmin ^
-a -ftls "http://localhost:8585"
If the data FTL server started successfully, the output should look like:
Attempting to connnect to FTLServer 'http://localhost:8585' for command 'available'
************************************************************
TIBCO FTL FTLAdmin 7.3.0 V2
Copyright 2009-2026 Cloud Software Group, Inc.
All Rights Reserved.
Executing available on FTL Server at [http://localhost:8585]
************************************************************
FTLserver is available
The FTL server uses port 8585. This port may be already in use by another running process. If so, you can change the exposed port of the container to a different port by specifying:
- Linux
- Windows
docker run --platform=linux/amd64 --name ftlserver -p <EXPOSED_PORT>:8585 ftl-quickstart:7.3
docker run --platform=linux/amd64 --name ftlserver -p <EXPOSED_PORT>:8585 ftl-quickstart:7.3
You can access the FTL server using the link http://localhost:<EXPOSED_PORT>.
Once started, the FTL Server user interface will be available at http://localhost:8585.
Run the Sample Applications
Now that the FTL server is running, you can run the FTL sample applications. The following commands will run sample applications that publish and subscribe 10 messages (one every second) to a topic named quickstart.topic. To run them, open two different terminal windows, one for the FTL subscriber and one for the FTL publisher and then execute the following commands.
- Linux
- Windows
Terminal 1 - Start the subscriber
docker run --platform=linux/amd64 --network container:ftlserver \
--rm ftl-quickstart:7.3 \
tibftldest-recv -d quickstart.topic -c 10
Terminal 2 - Start the publisher
docker run --platform=linux/amd64 --network container:ftlserver \
--rm ftl-quickstart:7.3 \
tibftldest-send -d quickstart.topic -c 10
Terminal 1 - Start the subscriber
docker run --platform=linux/amd64 --network container:ftlserver ^
--rm ftl-quickstart:7.3 ^
tibftldest-recv -d quickstart.topic -c 10
Terminal 2 - Start the publisher
docker run --platform=linux/amd64 --network container:ftlserver ^
--rm ftl-quickstart:7.3 ^
tibftldest-send -d quickstart.topic -c 10
We can use the tibftldest-thru-recv and tibftldest-thru-send samples to measure the throughput between a publisher and a subscriber on the topic performance.topic. These samples will send 500,000 messages and display the throughput measurements:
- Linux
- Windows
Terminal 1 - Start the subscriber
docker run --platform=linux/amd64 --network container:ftlserver \
--rm ftl-quickstart:7.3 \
tibftldest-thru-recv -d performance.topic
Terminal 2 - Start the publisher
docker run --platform=linux/amd64 --network container:ftlserver \
--rm ftl-quickstart:7.3 \
tibftldest-thru-send -d performance.topic
Terminal 1 - Start the subscriber
docker run --platform=linux/amd64 --network container:ftlserver ^
--rm ftl-quickstart:7.3 ^
tibftldest-thru-recv -d performance.topic
Terminal 2 - Start the publisher
docker run --platform=linux/amd64 --network container:ftlserver ^
--rm ftl-quickstart:7.3 ^
tibftldest-thru-send -d performance.topic
The output will be a report of the throughput metrics with the format:
Sending 100 warmup message(s)
Requested 500,000 messages.
Sending 500,000 messages (500 batches of 1000) with payload size 16
...
TIBCO FTL offers a large variety of samples for different messaging patterns...
Some other samples to explore are:
| Publisher | Subscriber | Description |
|---|---|---|
tibftldest-map-set | tibftldest-map-get | Basic program that sets/gets a message to from a map using the destinations messaging model. |
tibftldest-queue-send | tibftldest-queue-recv | Basic program that sends/receives a message to a queue using the destinations messaging model. |
Use the --help flag to see the other options available for each sample.
Monitor Your Server
While the FTL server Docker container is running, you can access the FTL server user interface at http://localhost:8585 to monitor:
- Active clients and connections
- Destinations and stores
- Server health and metrics
You can also use the FTL REST API to gather JSON-formatted information. For instance, to gather monitoring information:
- Linux
- Windows
curl http://localhost:8585/api/v1/server
curl http://localhost:8585/api/v1/server
To see the REST API documentation, visit http://localhost:8585/api/docs/.
Stop the Server
In order to stop the Docker container running the FTL server, execute the following commands.
- Linux
- Windows
docker stop ftlserver
docker stop ftlserver
To stop and completely remove the container along with its volumes, use this option:
- Linux
- Windows
docker rm -fv ftlserver
docker rm -fv ftlserver
If you want to remove the newly created quickstart image, use this option:
- Linux
- Windows
docker rmi ftl-quickstart:7.3
docker rmi ftl-quickstart:7.3
After the 6-hour preview_mode window, the FTL server exits and won't restart cleanly against the same state. Remove the container along with its volumes and start a fresh one:
- Linux
- Windows
docker rm -fv ftlserver
docker run --platform=linux/amd64 --name ftlserver -p 8585:8585 -d ftl-quickstart:7.3
docker rm -fv ftlserver
docker run --platform=linux/amd64 --name ftlserver -p 8585:8585 -d ftl-quickstart:7.3
To avoid the 6-hour limit entirely, restart with a mounted license file — see Optional: Use a license file instead of preview mode above.
Next Steps
For additional information:
- Browse the various samples offered and examine different messaging patterns.
- Check the TIBCO FTL documentation for advanced configuration and concepts.