Paikka
Jyväskylän yliopisto, Mattilanniemen kampus (Ahlmaninkatu 2), mikroluokka MaD205
Tavoite
Koulutuksen jälkeen koulutettavilla on hyvä peruskäsitys konttiteknologioista, konttien tuomista eduista ja hyödyistä sekä perustason osaamien konttipohjaisten ohjelmistoratkaisujen luomiseen sekä kyky itsenäisesti jatkaa osaamisensa syventämistä alueelta.
Esitiedot
Koulutettavien oletetaan omaavan vähintäänkin keskinkertaiset taidot ohjelmoinnista. Harjoitusten suorittamisessa Node.js/Ruby tms. Moderni sovelluskehys-tuntemus on suositeltavaa. Lisäksi osallistujilla tulee olla perusymmärrys Linux-järjestelmän käytöstä komentoriviä käyttäen, sillä harjoitukset suoritetaan pääasiassa Linux-ympäristössä.
Hinta
Koulutuksen tiedoissa esitetty sopimuskumppanin hinta 980 € + alv on laskettu 9 osallistujalle.
Osallistujamäärän noustessa laskemme hintaa seuraavalla tavalla:
10 osallistujaa: 900 € + alv
11 osallistujaa: 850 € + alv
12- osallistujaa: 790 € + alv
Koulutuksen (suuntaa-antava) aikataulu ja sisältö
8.30–8.50 | Aamukahvi |
8.50–11.30 | Koulutus |
11.30–12.15 | Lounas |
12.15–14.00 | Koulutus |
14.00–14.15 | Iltapäiväkahvi |
14.15–16.15 | Koulutus |
Päivä 1
-
Introduction
- Basics of containers and Docker
- What is a container
- What are the benefits of using containers versus virtual instances
- Real life examples and applications of using containers
- Creating a containerised application
- What are the steps needed
- Dockerfile basics
- Running the app
- Practise: creating a simple containerized node.js application
- Creating images
- Dockerfile concepts and commands
- Build arguments
- Common Dockerfile pitfalls
- Tips and tricks
- How to keep images small
- How not to leave stuff behind
- Squashing images (bonus)
- Practices:
- Creating Dockerfile to install Nginx on Ubuntu
- Effective use of image layer caching
- Storing and managing container images
- Docker image internals
- Layers
- Content addressability
- Dockerhub
- Private registries
- Other options
- Practises
- storing the previously created containerized application in an image repository
- Running and using private registry in Docker
- Running containers
- Basic run options
- Different sandboxing options
- Storing data
- Using volumes
- Practises:
- Container sandboxing
- Storing data in volumes
- Sharing volumes
Päivä 2
- Container networking
- Basics of Docker networking
- Creating networks
- Network plugins
- Practices:
- Creating networks and containers
- Network isolation
- Using multi-host networking
- Managing, scaling and orchestrating containers
- Different options including ready made platforms and utilization of cloud providers’ build in functionality
- Docker-compose basics
- Practises
- Running multi container app with docker-compose
- Deploying Kontena platform on Vagrant
- Monitoring containers
- What to monitor?
- Different monitoring solutions
- Practises:
- Set up cAdvisor to collect and show container statistics
- Run containers with log config to stream logs out of Docker
- Security considerations
- How secure are containers?
- Container security options
- Securing the overall solution
- Docker engine security considerations
- Practises:
- Running containers with restricted security
- Taking snapshots of containers in case of security breach
- Deployment pipeline integration options (if time allows)
- Drone
- Jenkins
- Example: Creating continuous delivery pipeline using Kontena and DroneCI
- Docker engine options
- Storage driver selection
- Engine tuning options
- How to dive deeper into containers – recommended information sources
- Summary