The current install was 1.3.1 and we wanted all docker servers to be identical.
First up, assume you have done a sudo -i to ensure all commands are run as root.
Also, some commands are prefixed with $ . This is to identify the command from it's output.
And further, I have used bogus IPv4 addresses for certain URLs.
For reference, I used 10.0.0.3 as the docker server IP.
# First some useful commands # Useful to find files in packages or use packages.ubuntu.com apt-file search nslookup # ------------------------------------------------------------------- # Install tree and dnsutils (nslookup and friends) # ------------------------------------------------------------------- apt-get install tree dnsutils # ------------------------------------------------------------------- # Kill all containers # ------------------------------------------------------------------- docker ps -a | egrep 'ls-api' | awk '{ print $NF; }' | xargs docker kill docker ps -a | egrep 'ls-api' | awk '{ print $NF; }' | xargs docker rm # ------------------------------------------------------------------- # Kill all images # ------------------------------------------------------------------- docker images -q --filter "dangling=true" | xargs docker rmi docker images | grep -v REPOSITORY | awk '{ print $3; }' | \ sort | uniq | xargs docker rmi # ------------------------------------------------------------------- # Stop docker # ------------------------------------------------------------------- service docker stop # ------------------------------------------------------------------- # Uninstall docker.io (You may need to do 'aptitude search docker' # to see if it is installed. If you do not have 'docker' installed, # but 'lxc-docker', then remove that instead # ------------------------------------------------------------------- apt-get remove docker.io # ------------------------------------------------------------------- # Cleanup any remaining files you want from: # /var/lib/docker # /etc/init.d # /etc/default/docker # /var/log/docker* # Your choice. # ------------------------------------------------------------------- # ------------------------------------------------------------------- # Install AUFS support # ------------------------------------------------------------------- apt-get update apt-get install linux-image-extra-`uname -r` # ------------------------------------------------------------------- # Fix keys # ------------------------------------------------------------------- apt-get update apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \ --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 # ------------------------------------------------------------------- # Update your apt sources # Note: First check your /etc/apt/sources.list.d/docker.list to see # if it already has this # ------------------------------------------------------------------- sh -c "echo deb http://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list" # ------------------------------------------------------------------- # Install latest docker # ------------------------------------------------------------------- apt-get update apt-get install lxc-docker # Note: During install, yo may get a message about # /etc/init/docker.conf being present. # If so, choose Y to overwrite your old one with the new one. # ------------------------------------------------------------------- # Change /etc/default/docker: # ------------------------------------------------------------------- # Use DOCKER_OPTS to modify the daemon startup options. #DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4" DOCKER_OPTS="-H tcp://0.0.0.0:2376 \ -H unix:///var/run/docker.sock \ --dns 10.0.0.1 \ <<- Your local DNS --dns 10.0.0.2 \ <<- services --insecure-registry 10.0.0.4:5000" <<- If you have a private repo # ------------------------------------------------------------------- # Look at the upstart jobs: # ------------------------------------------------------------------- service --status-all [ + ] apparmor [ ? ] console-setup [ + ] cron [ - ] docker [ - ] grub-common [ ? ] killprocs [ ? ] kmod [ ? ] networking [ + ] ntp [ ? ] ondemand [ ? ] open-vm-tools [ + ] postfix [ - ] procps [ + ] puppet [ + ] rabbitmq-server [ ? ] rc.local [ + ] resolvconf [ - ] rsync [ + ] rsyslog [ ? ] sendsigs [ + ] snmpd [ - ] ssh [ - ] sudo [ + ] udev [ ? ] umountfs [ ? ] umountnfs.sh [ ? ] umountroot [ - ] unattended-upgrades [ - ] urandom # ------------------------------------------------------------------- # Restart the service to enable AUFS support # ------------------------------------------------------------------- service docker restart # ------------------------------------------------------------------- # Get info # ------------------------------------------------------------------- $ docker info Containers: 0 Images: 0 Storage Driver: aufs <-- AUFS Root Dir: /mnt/docker/aufs <-- AUFS Backing Filesystem: extfs Dirs: 0 Execution Driver: native-0.2 Kernel Version: 3.13.0-24-generic Operating System: Ubuntu 14.04.1 LTS CPUs: 16 Total Memory: 15.67 GiB Name: dock-prod-001 ID: AAAA:BBBB:CCCC:DDDD:EEEE:FFFF:GGGG:HHHH:0000:1111:2222:3333 # Your ID will be different of course # ------------------------------------------------------------------- # Start Seagull to have a pretty interface to containers # See https://registry.hub.docker.com/u/tobegit3hub/seagull/ # ------------------------------------------------------------------- docker run -d \ -p 10086:10086 \ -v /var/run/docker.sock:/var/run/docker.sock \ --name=Seagull \ tobegit3hub/seagull # Browse via your desktop to http://10.0.0.3:10086/containers # ------------------------------------------------------------------- # Install Elastic # See https://registry.hub.docker.com/_/elasticsearch/ # The '_' in the URL means it's an official image # ------------------------------------------------------------------- docker run -d \ -p 9200:9200 -p 9300:9300 \ -v /some/path/to/elastic_search_data:/data \ --name=Elastic \ elasticsearch \ elasticsearch -Des.config=/data/elasticsearch.yml # Note: The first 'elasticsearch' is the image, and # the second 'elasticsearch' is the command plus options # Browse to http://10.0.0.3:9200 and http://10.0.0.3:9200/_search # ------------------------------------------------------------------- # Install Redis # See https://registry.hub.docker.com/u/library/redis/ # ------------------------------------------------------------------- docker run -d \ -p 6379:6379 \ -v /some/path/to/redis_data:/data \ --name=Redis \ redis redis-server \ --appendonly yes # Note: The 'redis' is the image, and # the 'redis-server' is the command plus any options # ------------------------------------------------------------------- # Install redis command line tools # So you can interact with the Redis container # ------------------------------------------------------------------- apt-get update apt-get install redis-tools # ------------------------------------------------------------------- # Test # ------------------------------------------------------------------- # First go to the redis_data folder which was defined via the start $ cd redis_data # Let's look at the data store $ ls -l appendonly.aof total 0 -rw-r--r-- 1 deploy docker 0 Mar 18 09:24 appendonly.aof # Empty, so let's add a key $ redis-cli 127.0.0.1:6379> keys * (empty list or set) 127.0.0.1:6379> set hello world OK 127.0.0.1:6379> keys * 1) "hello" 127.0.0.1:6379> get hello "world" 127.0.0.1:6379> quit # Now let's look at it $ ls -l appendonly.aof total 4 -rw-r--r-- 1 deploy docker 58 Mar 18 09:33 appendonly.aof # Ooo. Changed, so let's see if we can view that file $ file appendonly.aof appendonly.aof: ASCII text, with CRLF line terminators # Yup. So let's look at it: $ cat appendonly.aof *2 $6 SELECT $1 0 *3 $3 set $5 hello $5 world # ------------------------------------------------------------------- # Look at the containers: # ------------------------------------------------------------------- $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c758b7dc90e5 redis:latest "/entrypoint.sh redi 4 minutes ago Up 4 minutes 0.0.0.0:6379->6379/tcp Redis 310ccb182746 elasticsearch:latest "elasticsearch -Des. 8 minutes ago Up 8 minutes 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp Elastic e78470ddebca tobegit3hub/seagull:latest "./seagull" 30 minutes ago Up 30 minutes 0.0.0.0:10086->10086/tcp Seagull # ------------------------------------------------------------------- # Start doing your own deployments! # -------------------------------------------------------------------