Package: udocker
udocker is a basic user tool to execute simple docker containers in user
space without requiring root privileges. Enables download and execution
of docker containers by non-privileged users in Linux systems where
docker is not available. It can be used to pull and execute docker
containers in Linux batch systems and interactive clusters that are
managed by other entities such as grid infrastructures or externally
managed batch or interactive systems.udocker does not require any type of privileges nor the deployment of
services by system administrators. It can be downloaded and executed
entirely by the end user. The limited root functionality provided by
some of the udocker execution modes is either simulated or provided
via user namespaces.udocker is a wrapper around several tools and libraries to mimic a
subset of the docker capabilities including pulling images and running
containers with minimal functionality.DocumentationThe full documentation is available at:udocker documentationInstallation manualUser manualReference cardHow does it workudocker is written in Python, it has a minimal set of dependencies so
that can be executed in a wide range of Linux systems.udocker does not make use of docker nor requires its presence.udocker "executes" the containers by simply providing a chroot like
environment over the extracted container. The current implementation
supports different methods to mimic chroot thus enabling execution of
containers under a chroot like environment without requiring privileges.
udocker transparently supports several methods to execute the containers
based on external tools and libraries such as:PRootFakechrootrunccrunSingularityWith the exception of Singularity the tools and libraries to support
execution are downloaded and deployed by udocker during the installation
process. This installation is performed in the user home directory
and does not require privileges. The udocker related files such as
libraries, executables, documentation, licenses, container images and
extracted directory trees are placed by default under$HOME/.udocker.AdvantagesCan be deployed by the end-userDoes not require privileges for installationDoes not require privileges for executionDoes not require compilation, just transfer the Python codeEncapsulates several tools and execution methodsIncludes the required tools already statically compiled to work
across systemsProvides a docker like command line interfaceSupports a subset of docker commands:
search, pull, import, export, load, save, login, logout, create and runUnderstands docker container metadataAllows loading of docker and OCI containersSupports NVIDIA GPGPU applicationsCan execute in systems and environments where Linux namespaces
support is unavailableRuns both on new and older Linux distributions including:
CentOS 6, CentOS 7, CentOS 8, Ubuntu 14, Ubuntu 16, Ubuntu 18, Ubuntu 20,
Ubuntu 21, Alpine, Fedora, etcPython 2 and Python 3Since v1.3.0, udocker supports Python 2.6, 2.7 and Python >= 3.6.
The original udocker v1.1.x for Python 2 is no longer maintained
but is still availablehere.SyntaxCommands:
          search <repo/expression>      :Search dockerhub for container images
          pull <repo/image:tag>         :Pull container image from dockerhub
          create <repo/image:tag>       :Create container from a pulled image
          run <container>               :Execute container
          run <repo/image:tag>          :Pull, create and execute container

          images -l                     :List container images
          ps -m -s                      :List created containers
          name <container_id> <name>    :Give name to container
          rmname <name>                 :Delete name from container
          rename <name> <new_name>      :Change container name
          clone <container_id>          :Duplicate container
          rm <container-id>             :Delete container
          rmi <repo/image:tag>          :Delete image
          tag <repo/image:tag> <repo2/image2:tag2> :Tag image

          import <tar> <repo/image:tag> :Import tar file (exported by docker)
          import - <repo/image:tag>     :Import from stdin (exported by docker)
          export -o <tar> <container>   :Export container directory tree
          export - <container>          :Export container directory tree
          load -i <imagefile>           :Load image from file (saved by docker)
          load                          :Load image from stdin (saved by docker)
          save -o <imagefile> <repo/image:tag>  :Save image with layers to file

          inspect <repo/image:tag>      :Return low level information on image
          inspect -p <container>        :Return path to container location
          verify <repo/image:tag>       :Verify a pulled or loaded image
          manifest inspect <repo/image:tag> :Print manifest metadata

          protect <repo/image:tag>      :Protect repository
          unprotect <repo/image:tag>    :Unprotect repository
          protect <container>           :Protect container
          unprotect <container>         :Unprotect container

          mkrepo <top-repo-dir>         :Create another repository in location
          setup                         :Change container execution settings
          login                         :Login into docker repository
          logout                        :Logout from docker repository

          help                          :This help
          run --help                    :Command specific help
          version                       :Shows udocker version

        Options common to all commands must appear before the command:
          -D                            :Debug
          --quiet                       :Less verbosity
          --repo=<directory>            :Use repository at directory
          --insecure                    :Allow insecure non authenticated https
          --allow-root                  :Allow execution by root NOT recommendedExamplesSome examples of usage:Search container images in dockerhub and listing tags.udockersearchfedora
udockersearchubuntu
udockersearchdebian

udockersearch--list-tagsubuntuPull from dockerhub and list the pulled images.udockerpullfedora:39
udockerpullbusybox
udockerpulliscampos/openqcd
udockerimagesPull from a registry other than dockerhub.udockersearchquay.io/bio
udockersearch--list-tagsquay.io/biocontainers/scikit-bio
udockerpullquay.io/biocontainers/scikit-bio:0.2.3--np112py35_0
udockerimagesPull a different architecture such as arm64 instead of amd64.udockermanifestinspectcentos/centos8
udockerpull--platform=linux/arm64centos/centos8
udockertagcentos/centos8mycentos/centos8:arm64Create a container from a pulled image, assign a name to the created
container and run it. A created container can be run multiple times
until it is explicitly removed. Files modified or added to the container
remain available across executions until the container is removed.udockercreate--name=myfedfedora:29
udockerrunmyfedcat/etc/redhat-releaseThe three steps of pulling, creating and running can be also achieved
in a single command, however this will be much slower for multiple
invocations of the same container, as a new container will be created
for each invocation. This approach will also consume more storage space.
The following example creates a new container for each invocation.udockerrunfedora:29cat/etc/redhat-releaseExecute mounting the host /home/u457 into the container directory /home/cuser.
Notice that you can "mount" any host directory inside the container.
Depending on the execution mode the "mount" is implemented differently and
may have restrictions.udockerrun-v/home/u457:/home/cuser-w/home/usermyfed/bin/bash
udockerrun-v/var-v/proc-v/sys-v/tmpmyfed/bin/bashPlace a script in your host /tmp and execute it in the container. Notice
that the behavior of--entrypointchanged from the previous versions
for better compatibility with docker.udockerrun-v/tmp--entrypoint=""myfed/bin/bash-c'cd /tmp; ./myscript.sh'udockerrun-v/tmp--entrypoint=/bin/bashmyfed-c'cd /tmp; ./myscript.sh'Execute mounting the host /var, /proc, /sys and /tmp in the same container
directories. Notice that the content of these container directories will
be obfuscated by the host files.udockerrun-v/var-v/proc-v/sys-v/tmpmyfed/bin/bashInstall software inside the container.udockerrun--user=rootmyfedyuminstall-yfirefoxpulseaudiognash-pluginRun as some user. The usernames should exist in the container.udockerrun--user1000:1001myfed/bin/id
udockerrun--userrootmyfed/bin/id
udockerrun--userjorgemyfed/bin/idRunning Firefox.udockerrun--bindhome--hostauth--hostenv\-v/sys-v/proc-v/var/run-v/dev--user=jorge--drimyfedfirefoxChange execution engine mode from PRoot to Fakechroot and run.udockersetup--execmode=F3myfed

udockerrun--bindhome--hostauth--hostenv\-v/sys-v/proc-v/var/run-v/dev--user=jorge--drimyfedfirefoxChange execution engine mode to accelerated PRoot.udockersetup--execmode=P1myfedChange execution engine to runc.udockersetup--execmode=R1myfedChange execution engine to Singularity. Requires the availability of
Singularity in the host system../udockersetup--execmode=S1myfedInstall software running as root emulation in Singularity:udockersetup--execmode=S1myfed
udockerrun--user=rootmyfedyuminstall-yfirefoxpulseaudiognash-pluginChange execution to enable nvidia ready applications. Requires that
the nvidia drivers are installed in the host system.udockersetup--nvidiamytensorflowSecurityBy default udocker via PRoot offers the emulation of the root user. This
emulation mimics a real root user (e.g getuid will return 0). This is just
an emulation no root privileges are involved. This feature makes possible
the execution of some tools that do not require actual privileges but which
refuse to work if the username or id are not root or 0. This enables for
instance software installation using rpm, yum or dnf inside the container.udocker does not offer robust isolation features such as the ones offered
by docker. Therefore if the containers content is not trusted then these
containers should not be executed with udocker as they will run inside the
user environment. For this reason udocker should not be run by privileged
users.Container images and filesystems will be unpacked and stored in the user
home directory under$HOME/.udockeror other location of choice. Therefore
the containers data will be subjected to the same filesystem protections as
other files owned by the user. If the containers have sensitive information
the files and directories should be adequately protected by the user.udocker does not require privileges and runs under the identity of the user
invoking it. Users can downloaded udocker and execute it without requiring
system administrators intervention.udocker also provides execution with runc, crun and Singularity, these modes
make use of rootless namespaces and enable a normal user to execute as root
with the limitations that apply to user namespaces and to these tools.When executed by normal unprivileged users, udocker limits privilege
escalation issues since it does not use or require system privileges.General LimitationsSince root privileges are not involved any operation that really
requires such privileges will not be possible. The following  are
examples of operations that are not possible:accessing host protected devices and fileslistening on TCP/IP privileged ports (range below 1024)mount file-systemsthe su command will not workchange the system timechanging routing tables, firewall rules, or network interfacesIf the containers require such privilege capabilities then docker
should be used instead.udocker is not meant to create containers. Creation of containers
is better performed using docker and dockerfiles.udocker does not provide all the docker features, and is not intended
as a docker replacement.udocker is mainly oriented at providing a run-time environment for
containers execution in user space. udocker is particularly suited to
run user applications encapsulated in docker containers.Debugging or using strace with the PRoot engine will not work as both
the debuggers and PRoot use the same tracing mechanism.Execution mode specific limitationsudocker offers multiple execution modes leveraging several external tools
such as PRoot (P mode), Fakechroot (F mode), runC (R mode), crun (R mode)
and Singularity (S mode).When using execution Fakechroot modes such as F2, F3 and F4 the created
containers cannot be moved across hosts. In this case convert back to a Pn
mode before transfer.
This is not needed if the hosts are part of an homogeneous cluster where
the mount points and directory structure is the same. This limitation
applies whenever the absolute realpath to the container directory changes.The default accelerated mode of PRoot (mode P1) may exhibit problems in Linux
kernels above 4.0 due to kernel changes and upstream issues, in this case use
mode P2 or any of the other execution modes../udockersetup--execmode=P2my-container-idThe Fakechroot modes (Fn modes) require shared libraries compiled against
the libc shipped with the container. udocker provides these libraries for
several Linux distributions, these shared libraries are installed by
udocker under:$HOME/.udocker/lib/libfakechroot-*The runc and crun modes (R modes) require a kernel with user namespaces enabled.The singularity mode (S mode) requires the availability of Singularity in
the host system. Singularity is not shipped with udocker.Metadata generationThecodemeta.jsonmetadata file was initially generated withcodemetapypackage:codemetapyudocker--with-orcid--affiliation"LIP Lisbon"\--buildInstructions"https://https://github.com/indigo-dc/udocker/blob/master/docs/installation_manual.md#3-source-code-and-build"\--citation"https://doi.org/10.1016/j.cpc.2018.05.021"\--codeRepository"https://github.com/indigo-dc/udocker"\--contIntegration"https://jenkins.eosc-synergy.eu/job/indigo-dc/job/udocker/job/master/"--contributor"Mario David"\--copyrightHolder"LIP"--copyrightYear"2016"--creator"Jorge Gomes"\--dateCreated"2021-05-26"--maintainer"Jorge Gomes"\--readme"https://github.com/indigo-dc/udocker/blob/master/README.md"\--referencePublication"https://doi.org/10.1016/j.cpc.2018.05.021"\--releaseNotes"https://github.com/indigo-dc/udocker/blob/master/changelog"\-Ocodemeta.jsonFurther updates may be needed to add the correct values in the metadata file.ContributingSee:ContributingCitingSee:CitingWhen citing udocker please use the following:Jorge Gomes, Emanuele Bagnaschi, Isabel Campos, Mario David,
Luís Alves, João Martins, João Pina, Alvaro López-García, Pablo Orviz,
Enabling rootless Linux Containers in multi-user environments: The udocker
tool, Computer Physics Communications, Available online 6 June 2018,
ISSN 0010-4655,https://doi.org/10.1016/j.cpc.2018.05.021LicensingRedistribution, commercial use and code changes must regard all licenses
shipped with udocker. These include theudocker licenseand the
individual licences of the external tools and libraries packaged for use
with udocker. For further information see thesoftware licenses sectionof the installation manual.AcknowledgementsDockerhttps://www.docker.com/PRoothttps://proot-me.github.io/Fakechroothttps://github.com/dex4er/fakechroot/wikiPatchelfhttps://github.com/NixOS/patchelfrunChttps://runc.io/crunhttps://github.com/containers/crunSingularityhttps://www.sylabs.io/Open Container Initiativehttps://www.opencontainers.org/INDIGO DataCloudhttps://www.indigo-datacloud.euDEEP-Hybrid-DataCloudhttps://deep-hybrid-datacloud.euEOSC-hubhttps://eosc-hub.euEGI-ACEhttps://www.egi.eu/projects/egi-ace/EOSC-Synergyhttps://www.eosc-synergy.eu/DT-Geohttps://dtgeo.eu/LIPhttps://www.lip.ptINCDhttps://www.incd.ptThis work was performed in the framework of the H2020 project INDIGO-Datacloud
(RIA 653549) and further developed with co-funding by the projects EOSC-hub
(Horizon 2020) under Grant number 777536, DEEP-Hybrid-DataCloud
(Horizon 2020) under Grant number 777435, DT-Geo (Horizon Europe) under Grant
number 101058129. Software Quality Assurance is performed with the support of
by the project EOSC-Synergy (Horizon 2020).
The authors wish to acknowleadge the support of INCD-Infraestrutura Nacional de
Computação Distribuída (funded by FCT, P2020, Lisboa2020, COMPETE and FEDER
under the project number 22153-01/SAICT/2016).Changelogudocker (1.3.13)udocker improve binary executables identificationudocker fix fakechroot parsing of so, exec_path and add cmd substudocker implement minor pylint compliance improvementsudocker mode Pn make links2symlinks feature disabled by default in config: solves #412New udockertools 1.2.11 tarballudockertools mode Fn glibc fix dladdr(), dlopen(), dlmopen(), dl_iterate_phdr()udockertools mode Fn glibc add dladdr1()udockertools mode Fn glibc add execvpe(), execveat()udockertools mode Fn glibc add getauxval()udockertools mode Fn glibc add scandirat(), scandirat64()udockertools mode Fn glibc change stat64(), lstat64(), stat()udockertools mode Fn glibc add narrowing of program_invocation_nameudockertools mode Fn glibc improve command substitutionudockertools mode Fn musl fix dladdr(), dlopen(), dlmopen(), dl_iterate_phdr()udockertools mode Fn musl execvpe()udockertools mode Fn musl improve command substitutionudockertools mode Fn added support for Alpine 3.19 (x86_64)udockertools mode Fn added support for Fedora 39 (x86_64, aarch64, ppc64le)udockertools mode Rn include runc 1.1.12udocker (1.3.12)fix units tests, no modifications w.r.t. 1.3.11udocker (1.3.11)add support for hard link to symbolic link conversion in Pn modes
as hard links cannot be created by unprivileged users - partially
addresses: #388check of availability of network extensions for port mapping and
netcoop in Pn modes and only use them if supported by the proot
engine being invoked.improve image metadata generated by udocker on import - closes: #398udocker (1.3.10)improved handling of container platform informationadded support for QEMU on Pn modes enabling execution of containers
with architectures different than the hostselection of executable for Sn mode now defaults to apptainer and
in second place to singularitythe new commandmanifest inspectallows display of image manifests
therefore enabling access to the catalogue of platforms supported by
a given imagethe new commandtagenables changing the name of an existing imagenew optionpull --platform=os/architectureenables pulling of images
of a given architecture possibly different from the hostnew optionrun --platform=os/architectureenables pull and run of
images of a given architecture possibly different from the hostnew optionimport --platform=os/architectureenables to specify
an architecture for the imagenew optionps -penables list of the architectures of containersnew optionimages -penables list of the architectures of containersbuild udockertools 1.2.10 and set it as defaultthe udockertools support for Fn now includes Ubuntu 23:04, Fedora 38,
Alpine 3.17 and 3.18.experimental support for native Fn execution on arm64 for Fedora 36,
Fedora 37, Fedora 38, CentOS 7, AlmaLinux 8, AlmaLinux 9 and Ubuntu 22,
Ubuntu 20, Ubuntu 18 and similar.experimental support for native Fn execution on ppc64le for CentOS 7,
AlmaLinux 8, AlmaLinux 9, Ubuntu 22, Ubuntu 20, Ubuntu 18 and similar.experimental support for runc in arm64 and ppc64leupdated version of Pn engines for x86, x86_64, arm64.udocker (1.3.9)add support to access non-config metadata from containersadded support for multiplatform manifests and indices solves #392 and #355udocker (1.3.8)build udockertools 1.2.9 and set it as defaultadd Fn support for Ubuntu:22remove files to be installedset Fn preference to use runcudocker (1.3.7)Remove deprecated unit tests. udocker is the same as version 1.3.6udocker (1.3.6)re-implement udocker namespace solves #380login fails all the time solves #379Ignore image loading if already exists solves #378udocker (1.3.5)fix python backwards compatibility issues - closes: #374fix incorrectly reported errors by image verificationfix image search returning empty resultsfix issue with logical links in the udocker executable pathadd check to verify if container name exists before creation
or cloningadd --force option to create and clone to allow creation
of container even if the intended name given by --name existsprevent closing of file descriptors upon engine invocation
improves PMI process management interface interoperabilityfix issues in import and export while using pipes.fix image name parsing where "library" component is missing - closes: #359udocker (1.3.4)fix 2 unit testsudocker (1.3.3)image list does not truncate long names - solve #349fix conditional warning in verify imagefix and improve udocker high level testsudocker (1.3.2)fix missing f (format) for stringfix bugs with dict .items()solving several pylint issuesremove use2to3, fix issue #358udocker (1.3.1)Add --entrypoint to run --helpSet docker hub registry registry-1.docker.ioFix repository name in search --list-tagsImprove tests: udocker_test.sh and udocker_test-run.shDocumentation revision and improvementsAdd licenses and licenses notice to documentationAdd test instructionsIssues with --allow-root in Python 3.8Add security policy SECURITY.mdRemove old Python 2 testsFix configuration hierarchy, configuration filesUpdate documentation: README, user and install manualsFix sqa and configudocker (1.3.0)Prepare to move the stable code for Python 3 and Python 2 >= 2.6 to masterInstallation procedure changed since 1.1.x series see theinstallation_manualImprove user and installation documentationExtract documentation upon installationAdd codemeta.json, metadata for the softwareAdd support forfaccessat2()in Pn and Fn execution modesFix support fornewfstatat()in Pn execution modesAdd Fn libraries for Fedora 34 and Ubuntu 21.04Remove broken links in FileUtil.remove()update minimum udocker tools tarball to 1.2.8Cmd and entrypoint metadata and arguments processing changed to mimic dockerImprove removal of files and links in install and filebind restoreAdd follow location option to GetURL()Implement use of--entrypoint=<cmd>to force execution of command - closes: #306Implement use of--entrypoint=""to bypass entrypoint in metadata - closes: #306udocker (1.2.9)method Unshare.unshare os.strerror() takes one argument - closes: #254Add unit test for #254Method chown udocker.utils.fileutil FileUtil - closes: #276Several fixes of unit tests and pylintFix confusion between exit code 0 and inferred FalseDereference onsafe_prefixesuntar exclude devFix rmi for referenced layersSet default forPROOT_TMP_DIRsysdir mountpoint not found and set tmpdirUpdate installation instructionsImproveoskernel_isgreater()Improveosinfo()Fix repository login/logoutImprove keystore logicFix pull /v2udocker (1.2.8b2)Fix Rn modes to enable containers execution from readonly dirsDocumentation centralized installation and readonly setupsFix handling of dockerhub repository names in /v2Improve documentation and algn with 1.1.8b2Add creditsFix delete of paths with symlinks - closes: #267, #265Fix issues with login credentials - closes: #310Fix pull images from docker hub in Termux - closes: #307Fix issues on running udocker in googlecolab - closes: #286Fix execution with Pn modes in alternate /tmp - closes: #284Add conditional delay-directory-restore to untar layersAdd exclude of whiteouts on layer untarAdd --nobanner to udocker runudocker (1.2.7)Major restructuring of the codeMajor restructuring of the unit testsPorting to Python 3, still supports python 2.7all fixes up to previous 1.1.7 version have been appliedadded scripts tests udocker:utils/udocker_test.sh utils/udocker_test-run.shudocker (1.1.7)Fix P1 when Linux 4.8.0 SECCOMP is backported, affects newer CentOS 7 - closes: #282Check for file ownership on remove wrongly follows symlinks - closes: #266, #267udocker unexpectedly uses P1 exec mode instead of P2 - closes: #274Allow passing ofPROOT_TMP_DIRenvironment variable - closes: #284udocker (1.1.6)Complete fix for of ELF paths in modes Fn for $ORIGIN:$ORIGIN - closes: #255udocker (1.1.5)Preliminary fix for of ELF paths in modes Fn for $ORIGIN:$ORIGINAdd Fn libraries for Ubuntu20, Fedora32, Fedora33Add Fn libraries for Alpine 3.12, 3.13udocker (1.1.4-1)Fix run --locationFix udocker integrated helpFix naming of containersImprove parsing of image namesDocumentation improvementsos._exitfrom Unshare.unshare()DisableFAKECHROOT_DISALLOW_ENV_CHANGESin F4 modeudocker (1.1.4)Use hub.docker.com as default registrySearch using v1 and v2 APIsImplement API /v2/search/repositoriesAdjust search results to screen sizeList container size with ps -sList container execution modes with ps -mAdded support for nameat() and statx() in Pn and Fn modesAdded Fn libraries for Ubuntu18, Ubuntu19, Fedora29, Fedora30, Fedora31, CentOS8Added Fn libraries for Alpine 3.8, 3.9, 3.10, 3.11Added support for sha512 hashesAdded support for opaque whiteoutsAdded search --list-tags to available tags for a given repositoryAdd CLI support for image names in format host/repository:tagSupport for fake root in Sn execution modes via --user=rootImprove verify of loaded/pulled imagesImprove handling of mountpointsAdded --containerauth to enable direct use of the container passwd and groupAdded support for file mount bindings in singularityAddedUDOCKER_USE_PROOT_EXECUTABLEenv var to select proot locationAddedUDOCKER_USE_RUNC_EXECUTABLEenv var to select runc locationAddedUDOCKER_USE_SINGULARITY_EXECUTABLEenv var to select singularityAddedUDOCKER_DEFAULT_EXECUTION_MODEenv var to select default execution modeAdded R2 and R3 execution modes for PRoot overlay execution in runcAdded setup --purge for cleanup of mountpoints and filesAdded setup --fixperms to fix container file permissionsAdded run --env-file= to load file with environment variablesImprove file and directory binding support for Singularity and runcAdd command rename for renaming of containersCreate processes without shell contextSafer parsing of config files and removal of directoriesImprove installationImproved fix of SECCOMP accelerated mode for P1 modeAdded loading and handling of container images in OCI formatFixes for udocker in ARM aarch64Fix processing of --dri in Sn mode - closes: #241Improve handling of container and host authentication - partially addresses: #239Fixes to address authentication and redirects in pull - closes: #225, #230Added minimal support to load OCI images - closes: #111Added Pn support for newer distributions - closes: #192Improve the installation of udockertools - closes: #220, #228Read environment variables from file with --env-file= - closes: #212Prepare for pypy - closes: #211Fixes for verification of container images - closes: #209Fix command line processing for "-" in argument - closes: #202Fix file protections on extraction making files u+r - closes: #202, #206Fix comparison of kernel versions having non-integers - closes: #183Support for both manifest V2 schema 1 and schema 2 - closes: #218, #225Further improved pathname translation in Fn modes - closes: #160Implement save images in docker format - closes: #74useradd and groupadd not working in containers - closes: #141fix return code when exporting to stdin - closes: #202udocker (1.1.3)Support for nvidia drivers on ubuntu - closes: #162Installation improvements - closes: #166Fix issue on Fn mode symlink conversion - partially addresses: #160udocker (1.1.2)Improve parsing of quotes in the command line - closes: #98Fix version command to exit with 0 - closes: #107Add kill-on-exit to proot on Pn modesImprove download of udocker utilsHandle authentication headers when pulling - closes: #110Handle of redirects when pullingFix registries tableSupport search quay.ioFix auth header when no standard Docker registry is usedAdd registry detection on image nameAdd --version optionForce python2 as interpreter - closes: #131Fix handling of volumes in metadataHandle empty metadataFix http proxy functionality - closes: #115Ignore --no-trunc and --all in the images command - closes: #108Implement verification of layers in manifestAdd --nvidia to support GPUs and related driversSend download messages to stderrEnable override of curl executableFix building on CentOS 6 - closes: #157Mitigation for upstream limitation in runC without tty - closes: #132Fix detection of executable with symlinks in container - closes: #118Updated runC to v1.0.0-rc5Experimental support for Alpine in Fn modesImprove pathname translation in Fn modes for mounted dirs - partially addresses: #160udocker (1.1.1)New execution engine using singularityUpdated documentation with OpenMPI information and examplesAdditional unit testsRedirect messages to stderrImproved parsing of quotes in the command line - closes: #87Allow override of the HOME environment variableAllow override of libfakechroot.so at the container levelAutomatic selection of libfakechroot.so from container infoImprove automatic installEnable resetting prefix paths in Fn modes in remote hostsDo not setAF_UNIX_PATHin Fn modes when the host /tmp is a volumeExport containers in both docker and udocker formatImport containers docker and udocker formatLoad, import and export to/from stdin/stdoutClone existing containersSupport for TCP/IP port remap in execution modes PnFix run with basenames failing - closes: #89Allow run as root flag - closes: #91udocker (1.1.0)Support image names prefixed by registry similarly to dockerAdd execution engine selection logicAdd fr execution engine based on shared library interceptionAdd rc execution engine based on rootless namespacesImprove proot tmp files cleanup on non ext filesystemsImprove search returning empty on Docker repositoriesImprove runC execution portabilityAdd environment variableUDOCKER_KEYSTORE- closes: #75Prevent creation of .udocker whenUDOCKER_KEYSTOREis used - closes: #75udocker (1.0.4)Documentation fixesudocker (1.0.3)Support for import Docker containers in newer metadata structureImprove the command line parsingImprove temporary file handling and removalSupport for additional execution engines to be provided in the futureImproved parsing of entrypoint and cmd metadata - closes: #53Increase name alias length - closes: #52Add support for change dir into volume directories - closes: #51Fix deletion of files upon container import - closes: #50Fix exporting of host environment variables to the containers - closes: #48Change misleading behavior of import tarball from move to copy - closes: #44Fix validation of volumes specification - closes: #43udocker (1.0.2)Improve download on repositories that fail authentication on /v2Improve run verification of binaries with recursive symbolic linksImprove accelerated seccomp on kernels >= 4.8.0 - closes: #40udocker (1.0.1)Minor bugfixesExecutable name changed from udocker.py to udockerAdded support for login into docker repositoriesAdded support for private repositoriesAdded support for listing of v2 repositories catalogAdded checksum verification for sha256 layersImproved download handling for v1 and v2 repositoriesImproved installation tarball structureInsecure flag fixedAddress seccomp change introduced on kernels >= 4.8.0Utilities for packagingImproved verbose levels, messaging and output - closes: #24, #23Fully implement support for registry selection --registry parameter - closes: #29Provide support for private repositories e.g. gitlab registries - closes: #30Provide --insecure command line parameter for SSL requests - closes: #31udocker (1.0.0)Initial version