Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Containers for Beginners
Slide 2
Slide 2 text
@mikesir87 Disclaimer: I cannot explain sprankle pods either!
Slide 3
Slide 3 text
@mikesir87 Quick History of Shipping Source: https://www.publicdomainpictures.net/en/view-image.php?image=275355 Source: https://en.wikipedia.org/wiki/Rail_freight_in_Great_Britain Source: https://pxhere.com/en/photo/553345
Slide 4
Slide 4 text
Software = Shipping?
Slide 5
Slide 5 text
@mikesir87 Shipping in Software Source: https://www.usafe.af.mil/News/Photos/igphoto/2000887438/
Slide 6
Slide 6 text
@mikesir87 Either of these two scenarios sound familiar to you?
Slide 7
Slide 7 text
@mikesir87 Welcome! Glad to have you on the team! Clone the repo, use the wiki for setup instructions, and update the docs as needed. Good luck!
Slide 8
Slide 8 text
@mikesir87
Slide 9
Slide 9 text
@mikesir87 Imagine if...
Slide 10
Slide 10 text
@mikesir87 Creating Images Dockerfile docker build FROM node WORKDIR /app COPY package.json yarn.lock . RUN yarn install COPY src ./src CMD ["node", "src/index.js"]
Slide 11
Slide 11 text
@mikesir87 Sharing Images docker push Source: https://landscape.cncf.io
Slide 12
Slide 12 text
@mikesir87 Let’s build an image!
Slide 13
Slide 13 text
@mikesir87 What’s a container then? docker container run
Slide 14
Slide 14 text
@mikesir87
Slide 15
Slide 15 text
@mikesir87 Containers vs VMs Infrastructure Host Operating System Hypervisor Guest OS Bins/Libs App 1 Guest OS Bins/Libs App 2 Guest OS Bins/Libs App 3 Infrastructure Operating System Bins/Libs App 1 Bins/Libs App 2 Bins/Libs App 3 Docker Daemon
Slide 16
Slide 16 text
@mikesir87 Image Layering Dockerfile docker image history
Slide 17
Slide 17 text
@mikesir87 Layer contents file1 file2 file3 file4 file2 file5 file1 file2 file3 file4 file5 Layer 1 Layer 2 Merged
Slide 18
Slide 18 text
@mikesir87 What about deleted files? ● ● file1 file2 file3 file4 file2 file5 file1 file2 file3 file5 Layer 1 Layer 2 Merged .wh.file4 Layer 3
Slide 19
Slide 19 text
@mikesir87 WARNING! Be careful what you put into images. Deleted files might not actually be gone!
Slide 20
Slide 20 text
@mikesir87 Two Best Practices Incoming!
Slide 21
Slide 21 text
@mikesir87 Clean up as you go! ● ● RUN FROM ubuntu RUN apt-get update RUN apt-get install -y python python-pip RUN pip install awscli RUN apt-get autoremove --purge -y python-pip FROM ubuntu RUN apt-get update && \ apt-get install -y python python-pip && \ pip install awscli && \ apt-get autoremove --purge -y python-pip && \ rm -rf /var/lib/apt/lists/*
Slide 22
Slide 22 text
@mikesir87 Keep images tight and focused FROM node AS build WORKDIR /usr/src/app COPY package.json yarn.lock . RUN yarn install COPY public ./public COPY src ./src RUN yarn build FROM nginx:alpine COPY nginx.conf /etc/nginx/nginx.conf COPY --from=build /usr/src/app/build /usr/share/nginx/html
Slide 23
Slide 23 text
@mikesir87 How do you persist data?
Slide 24
Slide 24 text
@mikesir87 ● ● ○ ○ -v $HOME/mysql-data:/var/lib/mysql ● ○ ○ docker volume inspect ○ -v mysql-data:/var/lib/mysql Volumes
Slide 25
Slide 25 text
@mikesir87 Show me these volumes!
Slide 26
Slide 26 text
@mikesir87
Slide 27
Slide 27 text
@mikesir87 Docker Compose docker-compose.yml
Slide 28
Slide 28 text
@mikesir87 Docker Networking API 1 Database Reverse Proxy React App API 2 Cache
Slide 29
Slide 29 text
@mikesir87 Quick compose demo!
Slide 30
Slide 30 text
@mikesir87 Container Orchestration
Slide 31
Slide 31 text
@mikesir87 Actors in Orchestration
Slide 32
Slide 32 text
@mikesir87 Various Orchestrators
Slide 33
Slide 33 text
@mikesir87 Quick Swarm Demo!
Slide 34
Slide 34 text
@mikesir87 Recap
Slide 35
Slide 35 text
@mikesir87 WARNING! Containers are NOT a silver bullet that will fix your company culture
Slide 36
Slide 36 text
Thank you! Rate the session!