Friday, January 29, 2016

Getting Started with Docker

Run leveldb in docker
$ docker run -it -p 2012:2012 -v /data:/opt/app/db ekristen/leveldb
LevelDB Server Listening on 0.0.0.0:2012

Run leveldb in a daemon
$ docker run -d -p 2012:2012 -v /data:/opt/app/db ekristen/leveldb
LevelDB Server Listening on 0.0.0.0:2012

To stop the daemon
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED     STATUS              PORTS                    NAMES
78c08d346427        ekristen/leveldb    "bin/server"        4 hours ago Up 4 hours          0.0.0.0:2012->2012/tcp   elegant_borg

$ docker stop 78c08d346427
78c08d346427

The initial cost of downloading an asset is high but once it is downloaded, the asset can be reused with amazingly fast response time.
$ docker run -i -t debian /bin/bash
Unable to find image 'debian:latest' locally
latest: Pulling from library/debian
dbacfa057b30: Pull complete
7a01cc5f27b1: Pull complete
Digest: sha256:d2ea9df44c61c1e3042c20dd42bf57a86bd48bb428e154bdd1d1003fad6810a4
Status: Downloaded newer image for debian:latest
root@e927d3091dd9:/# exit
exit
$ docker run debian echo "Hello World"
Hello World

Remove all stopped containers:
$ docker rm -v $(docker ps -aq -f status=exited)