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!
# -------------------------------------------------------------------
No comments:
Post a Comment