docker at crowdtwist

46
Docker @ CrowdTwist

Upload: mark-fayngersh

Post on 06-Dec-2014

132 views

Category:

Software


0 download

DESCRIPTION

A brief introduction to Docker and the opportunities it enables at CrowdTwist, a Loyalty Startup.

TRANSCRIPT

Page 1: Docker at CrowdTwist

Docker @ CrowdTwist

Page 2: Docker at CrowdTwist

What is Docker?

Page 3: Docker at CrowdTwist

An open platform for distributed applications for developers and

sysadmins.— docker.com

Page 4: Docker at CrowdTwist

The GitHub of dev images

Page 5: Docker at CrowdTwist

So it's like a vm?

Page 6: Docker at CrowdTwist

Not quite

Page 7: Docker at CrowdTwist

Docker runs an OS like a first-class application

Page 8: Docker at CrowdTwist

Virtual machines include an entire guest OS

Page 9: Docker at CrowdTwist

Docker runs in userspace on the host

Page 10: Docker at CrowdTwist

Example

Page 11: Docker at CrowdTwist

$ docker run -it ubuntu /bin/bash

Page 12: Docker at CrowdTwist

1. Look for an installed image tagged ubuntu2. Download it from the registry (unless it exists)

3. Create a container from the ubuntu image4. Attach bash terminal to the container

Page 13: Docker at CrowdTwist

Containers

Page 14: Docker at CrowdTwist

You can think of a container as aninstance of an image

Page 15: Docker at CrowdTwist
Page 16: Docker at CrowdTwist

Containers are super flexibleYou can run multiple from the same image at once

Page 17: Docker at CrowdTwist

Can I make my own custom image?

Page 18: Docker at CrowdTwist

Yes!(Just create a Dockerfile)

Page 19: Docker at CrowdTwist

A Dockerfile contains commands that build

images in asemi-deterministic way

Page 20: Docker at CrowdTwist

FROM ubuntu:14.04RUN apt-get update && apt-get install -y build-essential

$ docker build -t my-image .

Page 21: Docker at CrowdTwist

Some of the crazy things you can do

with Docker

Page 22: Docker at CrowdTwist

Running a Redis service in its own containerFROM ubuntu:12.10RUN apt-get update && apt-get install -y redis-serverEXPOSE 6379ENTRYPOINT ["/usr/bin/redis-server"]

Page 23: Docker at CrowdTwist

Then linking it to a web app in another container$ docker run --link redis:db -it ubuntu /bin/bash$ > redis-cli -h $DB_PORT

Page 24: Docker at CrowdTwist

How about Persistence?

Page 25: Docker at CrowdTwist
Page 26: Docker at CrowdTwist
Page 27: Docker at CrowdTwist
Page 28: Docker at CrowdTwist

Not persistent$ mountnone on / type aufs

Persistent$ mount/dev/sda1 on /opt/crowdtwist type ext4

Page 29: Docker at CrowdTwist

Setting up persistent volumesFROM ubuntu:14.04RUN mkdir -p /opt/crowdtwistVOLUME ["/opt/crowdtwist"]

Page 30: Docker at CrowdTwist

So what does this mean for CrowdTwist?

Page 31: Docker at CrowdTwist

1. No more Parallels

Page 32: Docker at CrowdTwist
Page 33: Docker at CrowdTwist

2. Fast & consistent dev environment setup

Page 34: Docker at CrowdTwist

Everyone pulls the latest image from Docker Hub

Page 35: Docker at CrowdTwist

3. More control over tech stack

Page 36: Docker at CrowdTwist

Apache, Memcached, NodeJS and Ruby are all compiled from scratch

Page 37: Docker at CrowdTwist

In fact, the CrowdTwist Server images are built from a base

Ubuntu 14.04 image.

Page 38: Docker at CrowdTwist

4. Local for everyone(Even Eric the Designer)

Page 39: Docker at CrowdTwist
Page 40: Docker at CrowdTwist

5. Everything in the cloud

Page 41: Docker at CrowdTwist
Page 42: Docker at CrowdTwist

Devs, Staging, QA, Outsource

(Production?)

Page 43: Docker at CrowdTwist
Page 44: Docker at CrowdTwist

Welcome to the beginning of

something great

Page 45: Docker at CrowdTwist

Thanks :)@pheuter

@CrowdTwist

https://github.com/crowdtwist

Page 46: Docker at CrowdTwist

We'reHiring!