Docker

Building a docker image

  1. Create Dockerfile or clone docker repository
  2. 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 <containerIdOrName> 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 docker
    docker ps -a | grep 'Exited' | awk '{print $1}' | xargs --no-run-if-empty docker rm 
  • delete them physically
    docker images --no-trunc| grep none | awk '{print $3}' | xargs -r docker rmi 

Docker networking

 
docker/start.txt · Last modified: 2015/03/04 16:44 by vondra