Getting Started with FME Flow and Docker

Liz Sanderson
Liz Sanderson
  • Updated

Introduction

Docker is an open-source platform for developing, shipping and running applications as portable, self-sufficient containers. Safe Software creates images for the FME Flow services (FME Flow core, engine, etc) so that you can quickly start FME Flow containers.

As FME Flow has multiple services, which means multiple containers, we leverage Docker Compose.

Docker Compose is a tool for defining and running multi-container Docker applications, like FME Flow. With one simple command, you can start and stop all of FME Flow’s services.

A Docker Compose (YAML) file is used to define all of the services that we have made available here (downloads the YAML file). The Docker Compose file defines the services of FME Flow by specifying the names of the respective containers and their version.

 

Why use Docker to deploy FME Flow?

FME Flow on Docker is a solution for someone who’s looking to quickly start up a containerized version of FME Flow. This is not a distributed deployment.

If you’re interested in a containerized deployment that is distributed, or a more agile, scalable and modern solution we recommend Kubernetes.

 

Terminology

When working with Docker, there are some common terms that you should be familiar with. All definitions are taken from the Docker documentation.
 

Docker Terminology Definition Docker Documentation Reference
Container A container is a runtime instance of a docker image. Container
Docker Compose Docker Compose is a tool for defining and running complex applications with Docker. A multi-container application is defined in a single (YAML) file. Overview of Docker Compose
Dockerfile

A Dockerfile is a text document that contains all the commands you would normally execute manually in order to build a Docker image. Docker can build images automatically by reading the instructions from a Dockerfile.

Safe Software does not make our Dockerfiles public. Some customers may build their own Dockerfiles based on our engine images.

Dockerfile
Image Docker images are the basis of containers. An Image is an ordered collection of root filesystem changes and the corresponding execution parameters for use within a container runtime. An image typically contains a union of layered filesystems stacked on top of each other. An image does not have a state, and it never changes. Image
Registry A Registry is a hosted service containing repositories or images that respond to the Registry API. The default registry can be accessed using a Docker Hub browser or using the docker search command. Registry
Safe Software's images
Repository A Repository is a set of Docker images. A repository can be shared by pushing it to a registry server. The different images in a repository can be labeled using tags. Repository
Service A service is the definition of how you want to run your application containers. 
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.
Service
Tag A tag is a label applied to a Docker image in a repository. Tags are how various images in a repository are distinguished from each other.
Not every FME Flow build will be made public, but the ones that are will be tagged with their build number.
Tag
Volume A volume is a specially designated directory within one or more containers that bypasses the Union File System. Volumes are designed to persist data independent of the container's life cycle.
The FME Flow System Share is a volume.
Volume

 

Useful Resources

Documentation

Deploying FME Flow with Docker Compose documentation
 

Articles

Install FME Flow for Docker

Deployment of FME Flow using Docker (Linux)

Useful commands for FME Flow for Docker

FME Flow and Docker - Managing Engines and Queues (FME Server 2020 and earlier)

FME Flow on Docker: Utilizing Engine Assignment and Job Routing (FME Server 2021+)

libQt5Core.so.5: cannot open shared object file: No such file or directory (FME Flow 2021+)

 

Blogs

FME Flow for Docker - Technology Preview (2016)  

FME Flow on Mac using ‘Docker for Mac’ (Part 2 of Docker at Safe) (2016)  

Docker and FME: Driver and Worker Workflows (2017)

Elastic Processing in the Cloud with Docker and FME Flow (2018)

 

Troubleshooting and Common Issues

Commands for Troubleshooting

FME Flow on Docker: Service URL not picking up host name

FME Flow: Core dump files generated in the Repositories folder

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.