deb2docker - Man Page

Build a Docker image with given Debian packages

Synopsis

deb2docker [-hB][-c CMD][-f FROM][-n NAME][-o DIR][-p PRE_SCRIPT][-s POST_SCRIPT] packages

Description

deb2docker is a simple script which takes as input a list of Debian packages and generates automatically a Docker container including these packages. A set of freedesktop.org desktop launchers are also generated based on the .desktop and icon files found in the packages. In addition, a desktop launcher is created to start the container in a Terminal.

This tool is suited for deploying applications as containers, as well as for testing Debian packages in a sandbox.

Options

-B

do NOT build the image (default is to build). A build script is generated in the DIR target directory.

-c EXEC

Command to run in the container (default to /bin/bash).

-f FROM

Distribution is to be used (default to debian:stable).

-h

Show this help

-n NAME

Name of the image (default is built from the package list).

-o DIR

Use given directory DIR for the build (default is in /tmp).

-p PRE_SCRIPT

Execute the given script PRE_SCRIPT before packages install.

-s POST_SCRIPT

Execute the given script POST_SCRIPT after packages install.

packages

The package list can be any Debian package, as well as local .deb files.

Files

Notes

You need of course to have Docker installed and be part of the docker group:
·

sudo apt install docker.io

·

sudo usermod -aG docker $USER`

You may have to manually configure Docker to pass a proxy configuration.

Usual commands typically used to handle Docker containers are:

build

docker build –rm Dockerfile run docker run –rm -it NAME clean docker rmi NAME clean ALL docker system prune -a

Examples

Create a Docker container with package x11-apps in directory /tmp/xeyes, and launch xeyes:
·

deb2docker -o /tmp/xeyes x11-apps

·

/tmp/xeyes/start xeyes

A Desktop launcher is created as /tmp/xeyes/launchers/x11-apps-terminal.desktop

Create a Docker container with x11-apps and meshlab

deb2docker x11-apps meshlab

Create a Docker container making sure software channels are active:
·

echo “sed -i `s/main/main contrib non-free/g' /etc/apt/sources.list” > pre.sh

·

deb2docker -p pre.sh x11-apps

Authors

Emmanuel Farhi (emmanuel.farhi@synchrotron-soleil.fr)

See Also

deb2apptainer(1), distrobox-create(1), distrobox-enter(1), docker(1), apptainer(1)

Authors

Emmanuel Farhi.

Referenced By

deb2apptainer(1), devscripts(1).

February 2024