Storage-y things Brian Goff Core Engineer @cpuguy83
Agenda Container & Image Storage Persistent Storage
Image & Container Storage
What storage driver should I choose?
Container & Image Storage What driver should I choose? AUFS BTRFS DeviceMapper Overlay Overlay2 (new in 1.12!!!) ZFS
Persistent Storage
“Docker is for stateless applications!” — Uninformed
How do I do X with Docker?
Docker does not change computing fundamentals Docker moves point of interaction higher up Docker lets you focus more on your application and less on infrastructure
Storage is hard!
Share state by communicating Go idiom
We never lot anyone’s data – but we had some data take some very, very long vacations — Bryan Cantrill Go idiom
Create a volume $ docker volume create --name 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
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
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
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
Storage-y things Brian Goff Core Engineer @cpuguy83