Line 11: |
Line 11: |
| To install, download the <code>docker-1.10.0-dev</code> binary to your system. You'll need to start a docker daemon from this binary, and then you can use the same binary to communicate with that daemon. To start a docker daemon, run a command something like this: | | To install, download the <code>docker-1.10.0-dev</code> binary to your system. You'll need to start a docker daemon from this binary, and then you can use the same binary to communicate with that daemon. To start a docker daemon, run a command something like this: |
| | | |
− | docker-1.10.0-dev daemon -D --graph=/var/lib/docker-dev --host unix:///var/run/docker-dev.sock
| + | docker-1.10.0-dev daemon -D --graph=/var/lib/docker-dev --host unix:///var/run/docker-dev.sock |
| | | |
| The '''graph''' and '''host''' options will prevent colliding with an existing installation of Docker, but you can replace your existing docker if desired. In another shell, you can then connect to that daemon: | | The '''graph''' and '''host''' options will prevent colliding with an existing installation of Docker, but you can replace your existing docker if desired. In another shell, you can then connect to that daemon: |
| | | |
− | docker-1.10.0-dev --host unix:///var/run/docker-dev.sock run -d busybox top
| + | docker-1.10.0-dev --host unix:///var/run/docker-dev.sock run -d busybox top |
| | | |
| === Dependencies === | | === Dependencies === |
Line 21: |
Line 21: |
| In addition to downloading the binary above (or compiling one yourself), you need '''CRIU''' installed on your system, with at least version 2.0. You also need some shared libraries on your system. The most likely things you'll need to install are '''libprotobuf-c''' and '''libnl-3'''. Here's an output of <code>ldd</code> on my system: | | In addition to downloading the binary above (or compiling one yourself), you need '''CRIU''' installed on your system, with at least version 2.0. You also need some shared libraries on your system. The most likely things you'll need to install are '''libprotobuf-c''' and '''libnl-3'''. Here's an output of <code>ldd</code> on my system: |
| | | |
− | # ldd `which criu`
| + | # ldd `which criu` |
| linux-vdso.so.1 => (0x00007ffc09fda000) | | linux-vdso.so.1 => (0x00007ffc09fda000) |
| libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd28b2c7000) | | libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd28b2c7000) |
Line 37: |
Line 37: |
| First, we create container: | | First, we create container: |
| | | |
− | docker run -d --name looper --security-opt seccomp:unconfined busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'
| + | $ docker run -d --name looper --security-opt seccomp:unconfined busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done' |
| | | |
| You can verify the container is running by printings its logs: | | You can verify the container is running by printings its logs: |
| | | |
− | docker logs looper
| + | $ docker logs looper |
| | | |
| If you do this a few times you'll notice the integer increasing. Now, we checkpoint the container: | | If you do this a few times you'll notice the integer increasing. Now, we checkpoint the container: |
| | | |
− | docker checkpoint looper
| + | $ docker checkpoint looper |
| | | |
| You should see that the process is no longer running, and if you print the logs a few times no new logs will be printed. | | You should see that the process is no longer running, and if you print the logs a few times no new logs will be printed. |
Line 53: |
Line 53: |
| Like '''checkpoint''', '''restore''' is a top level command in this version of Docker. Continuing our example, let's restore the same container: | | Like '''checkpoint''', '''restore''' is a top level command in this version of Docker. Continuing our example, let's restore the same container: |
| | | |
− | docker restore looper
| + | $ docker restore looper |
| | | |
| If we then print the logs, you should see they start from where we left off and continue to increase. | | If we then print the logs, you should see they start from where we left off and continue to increase. |