---
name: "deb2docker"
section: "1"
platform: "linux"
package: "devscripts"
version: "2.25.15+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/deb2docker"
---

# deb2docker(1)

Build a Docker image with given Debian packages

## NAME

**deb2docker** - 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

- •

  DIR/README

- •

  DIR/Dockerfile

- •

  DIR/launchers/

- •

  DIR/icons/

- •

  DIR/build

- •

  DIR/start

## 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)](/deb2apptainer/1.md), [distrobox-create(1)](/distrobox-create/1.md), [distrobox-enter(1)](/distrobox-enter/1.md), [docker(1)](/docker/1.md), [apptainer(1)](/apptainer/1.md)

## AUTHORS

Emmanuel Farhi.
