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
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
FME Flow on Docker: Service URL not picking up host name
FME Flow: Core dump files generated in the Repositories folder
Comments
0 comments
Please sign in to leave a comment.