Docker usage
From wikinotes
Common Workflow
# build image (if not exist) [ ! -z $(docker images -q my_image) ] \ || docker build -f Dockerfile -t my_image . # build container docker run \ --name my_container \ --rm \ -ti \ -v $(pwd):/app \ <image> \ /bin/bash
Images
# manage images docker pull <image> # clone image from dockerhub docker images # list docker images docker rmi <image> # delete image by id/name (delete containers first `docker rm`) # build images docker build -t <image> . # build image from {PWD}/Dockerfile # containers from images docker run \ # create container from image --name foo \ # * named 'foo' --rm \ # * deleted when stopped -ti \ # * attach tty/stdin (for interactive shell) -v $(pwd):/app \ # * with `pwd` mounted at '/app' <image> \ # image id/name /bin/bash # command in container docker run <image> \ # create container from image -d \ # * as a daemon process /bin/bash -c 'while true; do echo "hi"; sleep 1;' docker commit <name-or-hash> # create image from running system
Containers
# management docker ps # list running containers docker ps -a # list all containers docker rm <container> # delete container docker run <image> # run command in new container docker exec -ti <container> /bin/sh # new shell in existing container
Managing Images/Containers
TODO:
recategorize, and delete
# maintaining images docker images # list images docker rm <image> # delete container/image docker logs <image> # stdout of docker image docker stop <image> # shutdown docker image boot2docker ssh # ssh into boot2docker VM layer (windows, osx) # backup/restore docker save <image> > file.tgz # backup image docker load <image> < file.tgz # load backup image
Examples
See docker examples.