Useful commands for FME Flow for Docker

Liz Sanderson
Liz Sanderson

FME Version

Introduction

This article covers some useful commands for FME Flow for Docker.

These commands will predominantly be for Docker Compose, which is a tool for defining and running multi-container Docker applications (FME Flow). For more information or a full reference to the Docker Compose CLI, please refer to the official documentation.

The FME Flow Administrator's Guide also has documentation Deploying FME Flow with Docker Compose.

All these commands should be run in the same directory as the docker-compose.yml file or reference the docker compose file you want to use. If your docker-compose.yml has a different name, or is in another location, use the -f flag to reference the correct file:

docker compose -f /Users/YourName/Docker/docker-compose-2021.yaml up -d 

Managing FME Flow

 Docker Compose and Starting FME Flow

To start FME Flow or to apply any changes made to the Docker Compose file, such as editing the environment variables, you will need to use the up command.  We start FME Flow in detached mode with the -d flag. This runs containers in the background, and will print the new container names.

docker compose up -d

Services

The different FME Flow components are separated into named services. It is useful to know what the names of the services are for the different Docker Compose commands.

  • fmeflowcore - The core FME Flow container
  • fmeflowwebsocket - The server for WebSocket connections
  • fmeflowweb - The web front end container
  • fmeflowdb - The backend database for FME Flow
  • fmeflowengine - The FME engines that accept jobs
  • fmeflowqueue - The FME Flow queue managing the jobs
  • nginx - Reverse proxy for FME Flow; receives all web traffic and forwards it to the right container

You can stop, start or restart a service. The stop command stops running containers without removing them.

docker compose start <service>
docker compose stop <service>
docker compose restart <service>

To kill a service, use the kill command.

docker compose kill <service>

To remove a stopped container. The next time you start them new instances of the containers will be created:

docker compose rm <service>

Engines

By default, this deployment will start with one engine, but with Docker Compose it is easy to scale. The “2” in the below command can go as high as you like as long as your license supports a number of engines you scale too.

docker compose up --scale fmeflowengine=4

For more information, please refer to this article: FME Flow and Docker - Managing Engines and Queues

 Upgrade to a newer version of FME Flow

Create a backup of FME Flow. Download the backup file to a location outside of the FME Flow System Share, otherwise you will lose the backup file.

Stop and remove containers. The -v flag will also remove named volumes, which removes the FME Flow System Share.

docker compose down -v

Download the Docker Compose file for your desired version of FME Flow. Docker Compose files are available by version here

Start FME Flow. We start FME Flow in detached mode with the -d flag. This runs containers in the background and prints the new container names.
 

docker compose up -d

Restore the backup of FME Flow.

Removing FME Flow

To stop and remove all containers, use the down command:

docker compose down

To remove all named volumes (FME Flow System Share) at the same time, use the -v flag:

docker compose down -v

Troubleshooting

Here are a few of the most common commands that can be helpful when troubleshooting an FME Flow on Docker deployment gone wrong.

View containers:

To show all running containers:

docker ps

To show all containers (including stopped), include the -a flag.

docker ps -a

​​​​View container logs:

docker logs <container>

Run a command inside a container:

docker exec -it <container> /bin/bash

This command opens an interactive (-i) psuedoterminal (-t) to issue commands within a container.

Show disk usage:

docker system df

Remove unused data:

docker system prune

This command will remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.

Display running processes in a container:

docker top <container>

To do this for the full FME Flow deployment, use Docker Compose:

docker compose top

Manage Docker images:

docker image

Was this article helpful?

We're sorry to hear that.

Please tell us why.

Comments

2 comments

  • Comment author
    David Reksten

    Regarding scaling the number of Engines on Docker:

    --scale fmeserverengine=4 might need to be replaced with --scale fmeflowengine=4, depending on FME version.

    0
  • Comment author
    Tandra Geraedts

    You're correct, thank you for spotting that, David Reksten! We will update that command. 

    0

Please sign in to leave a comment.