From aabda9513f819d4cd9f0f5c0362fa6fb69dc49f1 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 1 Oct 2020 13:43:00 +0200 Subject: [PATCH] migrate docker information from website to wiki --- home.md | 1 + icons/archlinux.svg | 3 + icons/docker.svg | 3 + precompiled.md | 1 + precompiled/docker.md | 148 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 156 insertions(+) create mode 100644 icons/archlinux.svg create mode 100644 icons/docker.svg create mode 100644 precompiled/docker.md diff --git a/home.md b/home.md index 810523c..c1c4b9b 100644 --- a/home.md +++ b/home.md @@ -41,6 +41,7 @@ select Linux systems: | [Debian/Ubuntu](/precompiled/debian) | | [openSUSE](/precompiled/suse) | | [CentOS/RedHat/Fedora](/precompiled/redhat) | +| [Docker](/precompiled/docker) | ## [![coding](/icons/code.svg "code")](#coding) Coding diff --git a/icons/archlinux.svg b/icons/archlinux.svg new file mode 100644 index 0000000..8141801 --- /dev/null +++ b/icons/archlinux.svg @@ -0,0 +1,3 @@ +Arch Linux icon diff --git a/icons/docker.svg b/icons/docker.svg new file mode 100644 index 0000000..fbd7de2 --- /dev/null +++ b/icons/docker.svg @@ -0,0 +1,3 @@ +Docker icon diff --git a/precompiled.md b/precompiled.md index 486261b..5aef4fb 100644 --- a/precompiled.md +++ b/precompiled.md @@ -15,6 +15,7 @@ the following: | [Debian/Ubuntu](/precompiled/debian) | | [openSUSE](/precompiled/suse) | | [CentOS/RedHat/Fedora](/precompiled/redhat) | +| [Docker](/precompiled/docker) | Debian/Ubuntu and openSUSE generally receive first attention: diff --git a/precompiled/docker.md b/precompiled/docker.md new file mode 100644 index 0000000..88cbe3e --- /dev/null +++ b/precompiled/docker.md @@ -0,0 +1,148 @@ + + +[![home](/icons/home.svg "wiki home")](/home) +[![packages](/icons/package.svg "packages")](/precompiled) + +[[_TOC_]] + +![debian](/icons/docker.svg "Docker") + +## Precompiled packages - Docker + +OpenCFD Ltd. uses [Docker Hub](https://hub.docker.com/) 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/ + + +### Installing Docker + +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 + ``` + $ id + ``` + 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) + - [installOpenFOAM][install-script] + - [startOpenFOAM][start-script] +- Make both scripts executable: + ``` + $ chmod +x installOpenFOAM + $ chmod +x startOpenFOAM + ``` +- Download and create the Docker container for OpenFOAM by executing the + first script: + ``` + $ ./installOpenFOAM + ``` + 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: + ``` + $ ./startOpenFOAM + ``` +- 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 `id` command) +- 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. +- Why doesn't `paraFoam` display?
+ 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 `foamToVTK`. +- 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](/building) +- How do I compile code?
+ The Docker environment contains a full OpenFOAM development environment so + all `wmake`, `wclean` _etc._ 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._ `yum`. + + +--- +Copyright (C) 2020 OpenCFD Ltd. + +[install-script]: https://sourceforge.net/projects/openfoam/files/v2006/installOpenFOAM +[start-script]: https://sourceforge.net/projects/openfoam/files/v2006/startOpenFOAM