- Precompiled packages - Docker
- Frequently Asked Questions about Docker
- About the image
Precompiled packages - Docker
OpenCFD Ltd. uses Docker Hub to distribute pre-compiled versions of OpenFOAM for Linux, Mac OS X and Windows, including a complete development environment.
Docker containers enable binaries compiled on a given Linux environment to be run on other platforms without any performance degradation. Docker also operates on Windows and Mac OS X wrapped in a light-weight Virtual Box.
An image of OpenFOAM contains binaries and source code. The Docker environment provides:
- A complete development environment to compile local modifications and create executables.
- consistent behaviour of the OpenFOAM across all platforms
Check if your (Linux or Windows or Mac OS X) system is supported by visiting https://docs.docker.com/engine/installation/
Docker is available in a Community Edition (CE) and an Enterprise Edition (EE). For installing and running the OpenFOAM image, the Community Edition is sufficient. Please see: https://docs.docker.com/engine/installation/
Installing and running OpenFOAM
- Make sure the user is in the docker group.
This can be checked with
The list of groups should include docker.
- Make sure the Docker daemon is running:
$ docker info
- Download the following scripts from the release instructions and put them in a local directory (eg, your home directory)
- Make both scripts executable:
$ chmod +x installOpenFOAM $ chmod +x startOpenFOAM
- Download and create the Docker container for OpenFOAM by executing the
This only needs to be done once per login. The first invocation will download the whole OpenFOAM installation so might take some time to finish. Future invocations will only take a few seconds.
- Start the Docker container with the second script:
- This will open a new shell with the OpenFOAM environment fully installed
and ready to use. For example,
mkdir -p $FOAM_RUN run cp -p $FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity . cd cavity blockMesh icoFoam
- All user files inside the Docker environment are available on the host inside the home directory.
Frequently Asked Questions about Docker
Is there any performance degradation when running via Docker?
Docker should run as fast as natively compiled code. On Windows and Mac OS X there may be a slight performance penalty associated with I/O.
How do I check if the OpenFOAM image has been downloaded correctly?
Type the command
$ docker images
to show the images available in Docker environment. For example,
REPOSITORY TAG IMAGE ID CREATED SIZE openfoamplus/of_v2006_centos73 latest f37ab3b17c2d 2 months ago 2.98GB ...
If you receive an error message about not being able to contact the Docker daemon check that:
- the Docker daemon is started at boot time
- the user account is in the docker group (see output from the
Where are my files?
The user files inside Docker are visible (ie, mounted) in your home area and can be operated on just like any other file.
Make sure that your machine's software is fully up-to-date. See if you can start a simple X-windows, non-graphics program (for example,
xterm). If this does not come up there may be a problem with the xhost access to the host screen. This is one of the steps inside the startOpenFOAM script. An alternative remedy is to install the native ParaView version for your system, and use the built-in OpenFOAM reader and/or OpenFOAM data conversion tools such as
How do I run parallel?
Same as any other OpenFOAM installation, e.g.:
mpirun -np 2 icoFoam -parallel
How do I run parallel on multiple computers?
This is not trivial inside the Docker environment. Also you might want to include optimised communication libraries (MPI) so it probably makes more sense to perform a native compilation
How do I compile code?
The Docker environment contains a full OpenFOAM development environment so all
wcleanetc. commands work (it is running the actual environment OpenFOAM was compiled in!)
What does installOpenFOAM do?
It downloads the OpenFOAM image from the Docker Hub and creates a specialized container. This container
- mounts the home directory of the user with read/write access
- optionally channels the graphics
- sets up the OpenFOAM environment.
I still have questions...
The Docker route is being continually refined. It you have comments/tips please mail them to:
docker (at) opencfd.co.uk
About the image
The current image was created from CentOS 7.3. If you wish to install any
additional tool in your docker container, start it as usual via the
startOpenFOAM script, login as root with the password
ofuser2006 for the
OpenFOAM-v2006 version and use e.g.
Copyright (C) 2020 OpenCFD Ltd.