Gilt Senior Software Engineer Rangarajan Radhakrishnan delivered this talk at the New York City PostgreSQL User Group meetup on December 11, 2013, hosted by Gilt.
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
PostgreSQL Setup Using Docker
1. PostgreSQL Setup Using Docker
Rangarajan Radhakrishnan, ranga@gilt.com
Infrastructure Engineering
Dec 11, 2013
2. 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
3. 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
4. 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
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
● create Dockerfile
● build Docker image (publish to registry)
● Run a container using image
● refine Dockerfile (if needed)
● rinse and repeat
7. Some Containers built by 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 for PostgreSQL
Demo(s)
●
Setting up Postgres
●
Some Docker commands
10. 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
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/]