| Line 2: |
Line 2: |
| | | | |
| | == Background == | | == Background == |
| | + | |
| | + | 1. External C/R: Using CRIU directly on the command line as it's typically |
| | + | done. This is called external because it's happening external to the |
| | + | Docker daemon. After checkpoint, the Docker daemon thinks that the |
| | + | container has exited. After restore, the Docker daemon doesn't know that |
| | + | the container is running again. Therefore, commands such as ''docker ps'' |
| | + | and ''docker logs'' will not work correctly. |
| | + | |
| | + | External C/R was done as a proof-of-concept. |
| | + | |
| | + | 2. Native C/R: Using ''docker checkpoint'' and ''docker restore'' commands. |
| | + | Because the Docker daemon is involved in both checkpoint and restore, |
| | + | its notion of the container state will be consistent and commands such as |
| | + | ''docker ps'' and ''docker logs'' will work. |
| | + | |
| | + | Native C/R is work in progress, say pre-alpha quality. You can |
| | + | watch this short demo |
| | + | [https://www.youtube.com/watch?v=HFt9v6yqsXo video] |
| | + | to see how it works. Source files for Docker 1.5 C/R is at this |
| | + | [https://github.com/SaiedKazemi/docker/tree/cr repo]. |
| | + | Work in underway to integrate C/R into the new libcontainer. |
| | + | |
| | + | == External C/R == |
| | | | |
| | Starting with CRIU 1.3, it's possible to checkpoint and restore a | | Starting with CRIU 1.3, it's possible to checkpoint and restore a |