Contents
This tutorial page describes how to use docker commands to run the containerized image generated on the previous page. Go through that page first if you have not already.
In this tutorial page, you will:
-
Run the containerized Docker image created on the previous page in your local Docker Desktop environment.
-
Confirm that you can communicate with the containerized application.
The steps in this section take you through running your Docker image in its container and communicating with the EventFlow module therein.
-
Confirm the images that are available to run with the
docker images
command:REPOSITORY TAG IMAGE ID CREATED SIZE docker_1st 1.0.0 5dbddbadc3e1 23 minutes ago 1.02GB sbrt-base 10.6.0 c39719f31fba 2 hours ago 1.02GB centos 8 470671670cac 3 months ago 237MB
Look for the image you just built on the previous page:
docker_1st
. -
Run a command like the following to name the Docker container and start it.
docker run -d --name firstapp -e STREAMING_NODENAME=A.cluster docker_1st:1.0.0
You must set the STREAMING_NODENAME environment variable for the Docker image with the
-e
or--env
option, as shown. You can specify any node and cluster names you prefer, as long as you specify the same cluster name for Docker-hosted images that will run the same fragment together as a cluster. (Do not use the same cluster name for any currently running StreamBase Application project that contains a different fragment).Look for output similar to this:
d26c729222632a69b587a910f4386e5b4e71b6bf74947b0db771f139f1a8b340
Note
The --name argument assigns the Docker container the name
firstapp
. Think of this as a shortcut name or an alias. You can instead use any name you prefer.As an alternative, it may help you manage a cluster with many containerized modules to use the same name argument as the nodename you assign with the STREAMING_NODENAME environment variable. Thus:
docker run -d --name A.cluster -e STREAMING_NODENAME=A.cluster docker_1st:1.0.0
Tip
If a message tells you your container name is in use, you can remove a leftover container with
docker stop
followed bycontainerName
docker rm
— or just use a different name in your docker run command.containerName
-
Confirm that your Docker container is loaded by using the
docker ps
command, which returns a row like the following:CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 460ab35a4036 docker_1st:1.0.0 "/bin/sh -c ${STREAM…" 4 minutes ago Up 4 minutes firstapp
-
Confirm that the Docker container is up and running the
firstapp
sample by using the following command:docker logs firstapp
Look for results like the following:
Installing application archive /var/opt/tibco/streambase/application/docker_1st-1.0.0.zip [A.cluster] Installing node [A.cluster] PRODUCTION executables [A.cluster] Memory shared memory [A.cluster] 6 concurrent allocation segments [A.cluster] Host name 8130179fbab9 [A.cluster] Starting node services [A.cluster] Loading node configuration [A.cluster] Auditing node security [A.cluster] Deploying application [A.cluster] Engine default-engine-for-com.tibco.sb.sample.firstapp [A.cluster] Application deployed [A.cluster] Administration port is 11294 [A.cluster] Service name is A.cluster [A.cluster] Node installed [A.cluster] Starting node [A.cluster] Engine application::default-engine-for-com.tibco.sb.sample.firstapp started [A.cluster] Loading node configuration [A.cluster] Auditing node security [A.cluster] Host name 8130179fbab9 [A.cluster] Administration port is 11294 [A.cluster] Service name is A.cluster [A.cluster] Node started COMMAND FINISHED
-
Confirm that you can connect to the StreamBase node running in the Docker container with commands like the following:
docker exec firstapp epadmin display services docker exec firstapp epadmin display services servicetype=node
The last command returns the name of the node in the containerized app:
Service Name = A.cluster Service Type = node Network Address = dtm-adm://96b621f6a71d:2000
Use this node name as the service name in two more commands:
docker exec firstapp epadmin servicename=A.cluster display node docker exec firstapp epadmin servicename=A.cluster display engine
Notice that the locations of resources returned by these commands are Linux paths not available on your Windows or Mac host:
[A.cluster] Node Directory = /var/opt/tibco/streambase/node/A.cluster [A.cluster] Deployment Directories = /var/opt/tibco/streambase/node/A.cluster/deploy
To stop the containerized application, run either:
docker stop firstapp docker container stop firstapp
The docker ps
command does not show stopped containers. To include those, use docker ps –all
.
Give the stop
command a moment to complete. Next, remove the container with either:
docker rm firstapp docker container rm firstapp
As an alternative to the docker commands shown on this page, you can use the Dashboard option from the Docker Desktop menu to open the Dashboard app. The top level of the Dashboard shows the containers currently running locally on your machine.
![]() |
Select a container to see more detail, which opens to the Logs panel. Use the buttons on the top row to run basic start, stop, restart, or delete commands for the running container, and to open a shell prompt inside the container. Use the menus on the left to inspect the container's basic settings and view its statistics since startup.
![]() |
At this point, you know how to use StreamBase Studio and Docker Desktop to containerize and run a StreamBase Application with an EventFlow fragment.
Next, try connecting to your StreamBase Application to send and receive data, described in the next page.
Note
You can configure your Docker container to redirect logging from your Docker-hosted StreamBase application to the Docker host by configuring a Logback console appender in your StreamBase application. See Docker container logging for instructions on this option.