Kitboga.net

Docker extra

Export image

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>
PS: You may need to sudo all commands.

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

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



Inspection

https://stackoverflow.com/questions/20813486/exploring-docker-containers-file-system


#### Method 1: snapshoting
You can evaluate container filesystem this way:

# find ID of your running container:
docker ps

# create image (snapshot) from container filesystem
docker commit 12345678904b5 mysnapshot

# explore this filesystem using bash (for example)
docker run -t -i mysnapshot /bin/bash
This way, you can evaluate filesystem of the running container
in the precise time moment. 
Container is still running, no future changes are included.

You can later delete snapshot using (filesystem of the running container is not affected!):

docker rmi mysnapshot

Method 2: ssh

If you need continuous access, you can install sshd to
your container and run the sshd daemon:

 docker run -d -p 22 mysnapshot /usr/sbin/sshd -D

 # you need to find out which port to connect:
 docker ps
This way, you can run your app using ssh (connect and execute what you want).

UPDATE - Method 3: nsenter

Use nsenter, see http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/

The short version is: with nsenter, you can get a shell into an existing container,
even if that container doesn’t run SSH or any kind of special-purpose daemon

#### UPDATE - Method 4: docker exec

Docker version 1.3 (latest, you might need to use docker apt repo 
to install latest version as of Nov 2014) supports new command exec
 that behave similar to nsenter. 

This command can run new process in already running container 
(container must have PID 1 process running already).
You can run /bin/bash to explore container state:

docker exec -t -i mycontainer /bin/bash