Utility to re-run a docker container with slightly different arguments
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Chris Smith f840a71cba Add option to expose ports 7 years ago
.gitignore Add tests. 7 years ago
LICENCE.md Initial version 7 years ago
README.md Add option to expose ports 7 years ago
docker-rerun Add option to expose ports 7 years ago
requirements.txt Add support for links, rework tests. 7 years ago
test.py Add option to expose ports 7 years ago

README.md

docker-rerun Build Status

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.

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

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 (--net)
  • 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.

The following arguments can be used when executing docker-rerun to modify the resulting container:

  • --image <image> - changes the image that will be used. You can specify tags (name:tag) or digests (name@digest) as with docker run.
  • -p <port> or --port <port> - expose additional ports. Same format as docker run’s -p option.

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.