KEMBAR78
PostgreSQL Setup Using Docker | PDF
PostgreSQL Setup Using Docker
Rangarajan Radhakrishnan, ranga@gilt.com
Infrastructure Engineering

Dec 11, 2013
Introduction
● Docker is based on the Linux Container
(LXC)
● containers can run on bare metal or VMs
● based on AuFS (union filesystem)
● inspired by efficiencies resulting from
containerization in shipping
History
● Docker was created by Solomon Hykes
(dotcloud)
● Released as open source in March 2013
● support for Red Hat Linux variants
announced in September 2013
Why Docker?
● creation of containers from any application
● containers are lightweight and easier to use
(based on LXC)
● deployment is quick, and experimentation
is easier
● vibrant and growing community
Docker Components
● registry (one or more) to publish Docker
images
○ Docker image is a template
○ Docker container is an instance

● hosts where Docker containers can run
(kernel 3.8 and lxc-docker package)
● Dockerfile for each type of container
Docker Workflow
● create Dockerfile
● build Docker image (publish to registry)
● Run a container using image
● refine Dockerfile (if needed)
● rinse and repeat
Some Containers built by community
●
●
●
●
●
●
●

PostgreSQL
Mongo
Riak
Cassandra
Continuous integration
Drupal (content management)
Memcached (SaaS)
Docker at Gilt
● Introduced to Docker by Gilt Principal
Systems Engineer Jonathan Leibiusky
● Hackathon in Dublin (Aug 2013) to
experiment with Docker
● Work now underway to adopt it for both
non-production and production
environments
Docker Container for PostgreSQL
Demo(s)
●

Setting up Postgres

●

Some Docker commands
Advantages of PostgreSQL container
● Provides an identical snapshot of most
recent dev database(s) for all developers
● Developers can avoid dealing with setup
and maintenance of development (or
staging) databases
● Allows for quick testing: both app and
database changes for some types of tests
References
● Docker wiki [http://en.wikipedia.org/wiki/Docker_
(software)]

● Docker getting started
[https://www.docker.io/gettingstarted/]

● Dockerfile tutorial
[http://www.docker.io/learn/dockerfile/]
Questions?
Gilt tech blog: tech.gilt.com
Twitter: @gilttech
Facebook: facebook.com/gilttech

PostgreSQL Setup Using Docker

  • 1.
    PostgreSQL Setup UsingDocker Rangarajan Radhakrishnan, ranga@gilt.com Infrastructure Engineering Dec 11, 2013
  • 2.
    Introduction ● Docker isbased on the Linux Container (LXC) ● containers can run on bare metal or VMs ● based on AuFS (union filesystem) ● inspired by efficiencies resulting from containerization in shipping
  • 3.
    History ● Docker wascreated by Solomon Hykes (dotcloud) ● Released as open source in March 2013 ● support for Red Hat Linux variants announced in September 2013
  • 4.
    Why Docker? ● creationof containers from any application ● containers are lightweight and easier to use (based on LXC) ● deployment is quick, and experimentation is easier ● vibrant and growing community
  • 5.
    Docker Components ● registry(one or more) to publish Docker images ○ Docker image is a template ○ Docker container is an instance ● hosts where Docker containers can run (kernel 3.8 and lxc-docker package) ● Dockerfile for each type of container
  • 6.
    Docker Workflow ● createDockerfile ● build Docker image (publish to registry) ● Run a container using image ● refine Dockerfile (if needed) ● rinse and repeat
  • 7.
    Some Containers builtby community ● ● ● ● ● ● ● PostgreSQL Mongo Riak Cassandra Continuous integration Drupal (content management) Memcached (SaaS)
  • 8.
    Docker at Gilt ●Introduced to Docker by Gilt Principal Systems Engineer Jonathan Leibiusky ● Hackathon in Dublin (Aug 2013) to experiment with Docker ● Work now underway to adopt it for both non-production and production environments
  • 9.
    Docker Container forPostgreSQL Demo(s) ● Setting up Postgres ● Some Docker commands
  • 10.
    Advantages of PostgreSQLcontainer ● Provides an identical snapshot of most recent dev database(s) for all developers ● Developers can avoid dealing with setup and maintenance of development (or staging) databases ● Allows for quick testing: both app and database changes for some types of tests
  • 11.
    References ● Docker wiki[http://en.wikipedia.org/wiki/Docker_ (software)] ● Docker getting started [https://www.docker.io/gettingstarted/] ● Dockerfile tutorial [http://www.docker.io/learn/dockerfile/]
  • 12.
    Questions? Gilt tech blog:tech.gilt.com Twitter: @gilttech Facebook: facebook.com/gilttech