Top Banner
copyright 2014 1 Docker, DevOps, Security Chris Swan, CTO @cpswan Cloud native networking
27

Ryan Koop's Docker Chicago Meetup Demo March 12 2014

Jul 16, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 1

Docker, DevOps, Security

Chris Swan, CTO

@cpswan

Cloud native networking

Page 2: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 2

TL;DR

Dockerfile is awesomely productive

Great for DevOps

Containers don’t contain

At least not yet

Images have a manifest problem

Keep track of your stuff

Page 3: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 3

Why me?

Page 4: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 4

Page 5: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 5

Let’s start with a demo

Page 6: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 6

Containers don’t contain

Page 7: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 7

With thanks to Dan Walsh @rhatdan

Watch his DockerCon 2014 presentation at http://is.gd/dcrhdw

Page 8: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Shocker

8

The issue

The response

http://stealth.openwall.net/xSports/shocker.c

https://news.ycombinator.com/item?id=7910117

Page 9: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Because containers aren’t VMs

and this has yet to come:

9

Page 10: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Possible to have our cake and eat it?

10

Page 11: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

cgroups

11

Page 12: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

namespaces

mnt mount points, filesystems

pid processes

net network

ipc inter process communication

uts hostname

device devices

user UIDs 12

Page 13: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

capabilities

Fine grained control over ‘root’ privileges:

• deny all "mount" operations;

• deny access to raw sockets (to prevent packet

spoofing);

• deny access to some filesystem operations, like

creating new device nodes, changing the owner of files,

or altering attributes (including the immutable flag);

• deny module loading;

• etc.

13

Page 14: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Mandatory Access Control (MAC):

AppArmor and SELinux

14

Page 15: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Containers will contain

• Use of namespaces, capabilities and MAC will

improve • Might be a game of ‘whack a mole’

• Hard to tell when we’re done (is @solomonstre’s word going to

be enough?)

• Libcontainer can drive other mechanisms • More secure options might come

• Hardware support might come • Existing rings 1 & 2 aren’t used much, but aren’t really suitable

• VT-x introduced ring -1, do we need a ring 0.5?

15

Page 16: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 16

The manifest problem

Page 17: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

My Dockerfile from earlier

17

Page 18: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Each active line creates a layer

18

Base OS

Sources

Update repos

Install nginx

Mod nginx.conf

Mod index.html

Page 19: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

An image binds layers together

19

Base OS

Sources

Update repos

Install nginx

Mod nginx.conf

Mod index.html

Page 20: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Nginx example

The image is the unit of deployment

20

Page 21: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Nginx example

What version of nginx is that?

21

Page 22: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Nginx example

What version of OpenSSL installed?

22

?

Page 23: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

Problem 1 – non determinism

Whilst we want this to be cached in the short term:

apt-get install nginx

We perhaps don’t want it cached in the long term

What are those durations?

23

Page 24: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014

2 – the manifest problem

When I run

apt-get install nginx

I don’t know which version of nginx I just got

Should I?

nginx –v > some_log.txt

Or maybe?

apt-cache policy nginx > some_log.txt

24

Page 25: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 25

TL;DR

Dockerfile is awesomely productive

Great for DevOps

Containers don’t contain

At least not yet

Images have a manifest problem

Keep track of your stuff

Page 26: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 26

Please give me feedback:

http://is.gd/chdmsf

Page 27: Ryan Koop's Docker Chicago Meetup Demo March 12 2014

copyright 2014 27

Chicago, US

[email protected]

+1 888 444 3962

Questions?