Storage-y things
Brian
Goff
Core Engineer @cpuguy83
Container & Image Storage
Agenda
Persistent Storage
Image &
Container
Storage
What storage driver
should I choose?
What driver should I choose?
• AUFS
• BTRFS
• DeviceMapper
• Overlay
• Overlay2 (new in 1.12!!!)
• ZFS
Container & Image Storage
Persistent
Storage
“Docker is for stateless
applications!”— Uninformed
How do I do X
with Docker?
Docker does not change
computing fundamentals
Storage is hard!
Share state by
communicating
We never lot anyone’s data – but we
had some data take some very, very
long vacations — Bryan Cantrill
Create a volume
$ docker volume create --name important_data
important_data
$ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
$ docker rm –f pgdb
$ # Oh no! I removed my database!... But I didn’t lose my data
$ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
Create a volume - NFS
$ docker volume create --name important_data --opt type=nfs --opt device=1.2.3.4:/export/path
important_data
$ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
$ docker rm –f pgdb
$ # Oh no! I removed my database!... But I didn’t lose my data
$ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
Create a volume - BTRFS
$ docker volume create --name important_data --opt type=btrfs --opt device=/dev/sdb
important_data
$ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
$ docker rm –f pgdb
$ # Oh no! I removed my database!... But I didn’t lose my data
$ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
Create a volume - Gluster
$ docker volume create --name important_data --driver glusterfs
important_data
$ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
$ docker rm –f pgdb
$ # Oh no! I removed my database!... But I didn’t lose my data
$ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
Storage-y things
Brian
Goff
Core Engineer @cpuguy83

Docker for Ops: Docker Storage and Volumes Deep Dive and Considerations by Brian Goff

  • 1.
  • 2.
    Container & ImageStorage Agenda Persistent Storage
  • 3.
  • 4.
  • 5.
    What driver shouldI choose? • AUFS • BTRFS • DeviceMapper • Overlay • Overlay2 (new in 1.12!!!) • ZFS Container & Image Storage
  • 6.
  • 7.
    “Docker is forstateless applications!”— Uninformed
  • 8.
    How do Ido X with Docker?
  • 9.
    Docker does notchange computing fundamentals
  • 12.
  • 13.
  • 14.
    We never lotanyone’s data – but we had some data take some very, very long vacations — Bryan Cantrill
  • 15.
    Create a volume $docker volume create --name important_data important_data $ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres $ docker rm –f pgdb $ # Oh no! I removed my database!... But I didn’t lose my data $ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
  • 16.
    Create a volume- NFS $ docker volume create --name important_data --opt type=nfs --opt device=1.2.3.4:/export/path important_data $ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres $ docker rm –f pgdb $ # Oh no! I removed my database!... But I didn’t lose my data $ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
  • 17.
    Create a volume- BTRFS $ docker volume create --name important_data --opt type=btrfs --opt device=/dev/sdb important_data $ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres $ docker rm –f pgdb $ # Oh no! I removed my database!... But I didn’t lose my data $ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
  • 18.
    Create a volume- Gluster $ docker volume create --name important_data --driver glusterfs important_data $ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres $ docker rm –f pgdb $ # Oh no! I removed my database!... But I didn’t lose my data $ docker run –d –v important_data:/var/lib/postgresql/data –-name pgdb postgres
  • 19.

Editor's Notes

  • #10 Docker moves point of interaction higher up Docker lets you focus more on your application and less on infrastructure
  • #14 Go idiom
  • #15 Go idiom