Utility to re-run a docker container with slightly different arguments
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
Chris Smith de31a64b5e Update README il y a 7 ans
.coveragerc Configure coverage il y a 7 ans
.gitignore Configure coverage il y a 7 ans
LICENCE.md Initial version il y a 7 ans
README.md Update README il y a 7 ans
docker_rerun.py Fix line length. il y a 7 ans
requirements.txt Switch coveralls library il y a 7 ans
setup.py Add a working entrypoint again. il y a 7 ans
test.py Fix incorrect label call il y a 7 ans

README.md

docker-rerun

Build Status Code Coverage PyPI PyPI Downloads

docker-rerun is a small utility script that makes it easy to re-run docker containers using the same arguments you used previously.

Want to update to a newer image, or add a missing port publication? docker-rerun’s got you covered.

Installation

You can install the current stable version of docker-rerun using pip:

$ pip install --upgrade docker-rerun

Or the bleeding edge version from git:

$ pip install --upgrade git+https://github.com/csmith/docker-rerun.git

Note that docker-rerun requires Python 3, so you may need to use pip3 in place of pip depending on your system configuration.

Usage

In the most basic usage, you pass in a container name and it will be stopped, deleted and recreated:

$ docker-rerun apache

You can also pass additional arguments to modify aspects of the container when it’s rerun. For example, to change the image:

$ docker-rerun --image nginx:latest webserver

To check what exactly is going to be performed beforehand, use the --dry-run option:

$ docker-rerun --dry-run apache
docker stop apache
docker rm apache
docker run --name=apache -p=80:80/tcp --restart=always apache:latest

Demo

asciicast

What’s supported

At present docker-rerun supports copying a number of commonly used arguments:

  • Commands (trailing arguments)
  • Environment variables (-e/--env)
  • Labels (-l/--label)
  • Links (--link)
  • Names (--name)
  • Networks (--network)
  • Port publications (-p)
  • Restart policies (--restart)
  • User switching (-u/--user)
  • Volumes (-v/--volume, and --volumes-from)

If a container uses an argument that’s not supported yet, it will be silently dropped when rerunning.

Arguments

The built-in help shows all available arguments. --dry-run and --pull affect the behaviour of docker-rerun; other options allow modification of the container’s parameters.

usage: docker-rerun [-h] [-d] [--pull] [--image IMAGE] [--label LABEL]
                    [--network NETWORK] [--port PORT] [--tag TAG]
                    container

Reruns docker containers with different parameters.

positional arguments:
  container             The container to rerun

optional arguments:
  -h, --help            show this help message and exit
  -d, --dry-run         Don't actually re-run the container, just print what
                        would happen.
  --pull                Docker pull the image before re-running the container
  --image IMAGE         Image to use in place of the original
  --label LABEL, -l LABEL
                        The new label to add to the container.
  --network NETWORK     The new network configuration to use
  --port PORT, -p PORT  Additional port to expose
  --tag TAG             Image tag (version) to use

What’s not done yet

Many other command line arguments:

  • Network aliases
  • Permissions and policies
  • Advanced networking options

More options to allow mutating the container config when rerunning.