How to copy Docker images from one host to another without using a repository

docker

Solution

You will need to save the Docker image as a tar file:

docker save -o <path for generated tar file> <image name>

Then copy your image to a new system with regular file transfer tools such as `cp`, `scp`, or `rsync` (preferred for big files). After that you will have to load the image into Docker:

docker load -i <path to image tar file>

You should add filename (not just directory) with -o, for example:

docker save -o c:/myfile.tar centos:16

your image syntax may need the repository prefix (:latest tag is default)

docker save -o C:\path\to\file.tar repository/imagename

PS: You may need to `sudo` all commands.

Problem

How do I transfer a Docker image from one machine to another one without using a repository, no matter private or public? I create my own image in VirtualBox, and when it is finished I try to deploy to other machines to have real usage. Since it is based on my own based image (like Red Hat Linux), it cannot be recreated from a Dockerfile. My dockerfile isn't easily portable. Are there simple commands I can use? Or another solution?

Original source

Related problems