<style> .present { text-align: left; } </style> # Docker Intro and Week 19 Roadmap --- ## What is Docker #### What are Docker containers? ![shipping container](https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/MAERSK_MC_KINNEY_M%C3%96LLER_%26_MARSEILLE_MAERSK_%2848694054418%29.jpg/1920px-MAERSK_MC_KINNEY_M%C3%96LLER_%26_MARSEILLE_MAERSK_%2848694054418%29.jpg) --- ### Docker containers - containers are isolated - containers are ephemeral - containers are lightweight - containers are reproducible --- ### Docker containers - containers are isolated - cannot interact with the rest of your computer, or other containers (except in specific ways) - containers are ephemeral - you make them when you need one, and you can get rid of them when you're done - containers are lightweight - single-purpose, only contain what they need - containers are reproducible - make the same container over and over again --- ### Who and what is it useful for? Many things... - Collaboration - Trying out new tools - DevOps - Scientists - Deploying a website! --- ## Docker topics - Setup and practice navigating inside a container (today) - Docker containers (Tuesday) - Docker Images and Dockerfiles (Wednesday) - Docker-compose (Thursday) - Microservices (Optional) --- ### Today - set up Docker - explore alpine linux - a minimal linux distribution - in this project - no direct access to your computer's file system - interactions through the command line --- ### Docker containers (Tuesday) - a docker container is a lightweight package which contains all the software and dependencies to run a single process - we'll explore containers & use the command line interface to work with them --- ### Docker images (Wednesday) - docker images are templates for building docker containers - allows you to make the same containers over and over - you can customize an image using a Dockerfile --- ### Docker-compose (Thursday) - easily spin up a collection of containers, and configure them to communicate with one another --- ### Friday - multi-threading demo - walkthrough the project skeleton - group project planning --- ### Today's itinerary [1/2] Docker introduction: - Watch this video, which is also listed under lecture for tomorrow: [12-minute Docker Overview](https://www.youtube.com/watch?v=YFl2mCHdv24) - Non Technical Overview of Docker (reading) Docker installation (if docker is not already installed): - Docker Installation (reading) - If you want to test your installation: - `docker container run --rm hello-world` --- ### Today's itinerary [2/2] Docker project: - Installing Packages on Alpine Linux (video) - Notes for Installing Packages on Alpine Linux (reading) - Linux Basics (reading) - Trying Out Alpine Linux (project)