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.
[2024]Digital Global Overview Report 2024 Meltwater.pdf
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/]