======Docker======
* best source of docker wisdom: https://github.com/wsargent/docker-cheat-sheet
===== Building a docker image =====
- Create Dockerfile or clone docker repository
- Run:docker build -t YourImage /path/to/dir/with/dockerfile
===== Running docker container =====
docker run -v /srv/elgoog:/mnt -d algoo
* -d detached
* -v volumes to bind in format /path/at/host:/path/in/container
* -m memory limit
* -c cpu limit
===== Attach to the running container (docker >= 1.3) =====
docker exec -it bash
===== Attach to the running container (docker < 1.3) =====
* first discover all running containers on host
docker ps
* output:
root@xen-docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d5e31d1cbe9c algoo:latest supervisord -n 3 seconds ago Up 2 seconds 80/tcp furious_hopper
ec704ed40100 algoo:latest supervisord -n 4 seconds ago Up 3 seconds 80/tcp distracted_babbage
* attach to the container by id (works only if COMMAND = bash)
docker attach d5e31d1cbe9c
===== Copying files between host and container =====
* The cleanest way how to copy files between host and container is to mount an image to the container docker run -v /path/to/hostdir:/mnt $container
cp /mnt/sourcefile /path/to/destfile
===== Delete old docker images and keep the running ones =====
* remove images from dockerdocker ps -a | grep 'Exited' | awk '{print $1}' | xargs --no-run-if-empty docker rm
* delete them physicallydocker images --no-trunc| grep none | awk '{print $3}' | xargs -r docker rmi
====== Docker networking ======
* http://blog.oddbit.com/2014/08/11/four-ways-to-connect-a-docker/