docker.md
August 30, 2023 ยท View on GitHub
The MintPy Docker container
Docker allows you to run MintPy in a dedicated container, which is essentially an efficient virtual machine. Check here for the installation instruction.
1. Pulling the mintpy Docker image
We publish the mintpy Docker images in the GitHub Container Registry at ghcr.io/insarlab/mintpy.
The latest stable released version can be pulled to your local machine via the latest tag as:
docker pull ghcr.io/insarlab/mintpy:latest
The latest development version (the current HEAD of the main branch) can be pulled via the develop tag as:
docker pull ghcr.io/insarlab/mintpy:develop
Note that both latest and develop are rolling tags, meaning they change as MintPy evolves. Thus, in a production system, one may want to use a specific version for reproducebility. This is available (since version 1.3.3) via the version tag as:
docker pull ghcr.io/insarlab/mintpy:v1.3.3
2. Running the mintpy Docker container
Run the following to start an interactive shell session in the container with a host path to the data directory using volumes:
docker run -it -v </path/to/data/dir>:/home/mambauser/data ghcr.io/insarlab/mintpy:latest
# use "docker run --name" option to name the container, e.g. "--name mintpy"
# then enter the running container as "docker exec -it mintpy"
# now inside the container
cd data/FernandinaSenDT128/mintpy
smallbaselineApp.py FernandinaSenDT128.txt
Or run mintpy executables directly as:
docker run -it -v </path/to/data/dir>:/home/mambauser/data ghcr.io/insarlab/mintpy:latest smallbaselineApp.py --help
docker run -it -v </path/to/data/dir>:/home/mambauser/data ghcr.io/insarlab/mintpy:latest smallbaselineApp.py /home/mambauser/data/FernandinaSenDT128/mintpy/FernandinaSenDT128.txt
Or run the following to launch the Jupyter Lab server, then copy and paste the printed http://localhost:8888/lab?token= url in a browser.
# to launch a Jupyter Notebook frontend, replace "lab" with "notebook" in the command below
docker run -p 8888:8888 -it ghcr.io/insarlab/mintpy:latest jupyter lab
Or launch the Jupyter server with custom startup options as:
docker run -p 8888:8888 -it ghcr.io/insarlab/mintpy:latest jupyter {lab,notebook} [JUPYTER_OPTIONS]
# to see all the custom startup option:
docker run -p 8888:8888 -it ghcr.io/insarlab/mintpy:latest jupyter {lab,notebook} --help-all
Notes
-
The container image is built using the mambaorg/micromamba as a base. To manage conda environments inside the container use the
micromambacommand. For more information on micromamba, see: https://github.com/mamba-org/mamba#micromamba -
Docker tightly maps user/group ids (uid/gid) inside and outside the container. By default, a
mambauserwithuid=1000andgid=1000will run inside the container and write files as that user. If you mount in a volume, files written to that volume will be owned by the user on your local machine withuid=1000andgid=1000. On linux and mac these are the default uid/gid values, but on a shared or managed system, these may not be your uid/gid values. You can override the users running inside the container with the--userargument todocker run, see: https://docs.docker.com/engine/reference/run/#user